উন্নত সম্পাদনার ক্ষমতা সহ শেল


11

শেলস (কমপক্ষে যা আমি জানি) এর সত্যই খারাপ কমান্ড সম্পাদনার ক্ষমতা থাকে।

উদাহরণ স্বরূপ:

  • আমি কার্সারকে কমান্ডের কোনও বিন্দুতে নির্দেশ করতে পারি না।
  • আমি কমান্ডের পাঠ্য / বাক্সক্ষেত্র / মুছুন / প্রতিস্থাপন করতে পারি না।

বর্তমানে এগুলি এতটা বিভ্রান্তিকর, আমি টার্মিনালে আটকানোর আগে কমান্ডগুলি সম্পাদনা করতে gedit ব্যবহার করি।

এগুলির জন্য ভাল কোনও সমাধান আছে কি?


3
আপনি একটি শেল দিয়ে একটি টার্মিনাল বিভ্রান্ত করছেন।
জেডিবিপি

উত্তর:


13

বাশ আসলে এই বেশ ভাল। আপনার এটির শর্টকাটগুলি শিখতে হবে। উদাহরণস্বরূপ (ডিফল্ট ইমাস মোডে):

  • Ctrl+ A: লাইনের শুরুতে সরান।
  • Ctrl+ E: লাইনের শেষে যান।
  • Ctrl+ B: একটি অক্ষর পিছনে সরানো।
  • Ctrl+ F: একটি অক্ষরকে সামনে সরান।
  • Alt+ B: একটি শব্দ পিছনে সরান।
  • Alt+ F: একটি শব্দ এগিয়ে যান।
  • Ctrl+ K: লাইনের শেষ অবধি সবকিছু মুছে ফেলুন (কাটা)।
  • Alt+ D: কার্সারের পরে শব্দটি মুছে ফেলুন (কাটা)।
  • Ctrl+ W: কার্সারের আগে শব্দটি মুছে ফেলুন (কাটা)।
  • Ctrl+ Y: ইয়ঙ্ক (পেস্ট) বাফারে কী রয়েছে (আপনি যা Ctrl+ Kবা Alt+ দিয়ে কাটেন Dউদাহরণস্বরূপ)

এবং আরও অনেক আছে। man readlineআর কি পাওয়া যায় তা দেখতে পড়ুন । আপনি এগুলি রেখে বিভিন্ন শর্টকাট নির্ধারণ করতে পারেন ~/.inputrc। উদাহরণস্বরূপ, Ctrl+ Leftএক শব্দ ফিরে যেতে এবং Ctrl+ Rightএকটি শব্দ এগিয়ে যেতে, এটিতে আপনার যুক্ত করুন ~/.inputrc:

"\e[1;5D": backward-word 
"\e[1;5C": forward-word

এই অদ্ভুত কোডগুলির অর্থ কী তা জানতে, Ctrl+ টিপুন Vএবং তারপরে আপনি কীটি ব্যবহার করতে চান সেটি টিপুন। আপনি Ctrl+ দিয়ে চেষ্টা Rightকরলে দেখতে পাবেন ^[[1;5C। প্রতিস্থাপন ^[সঙ্গে \eমধ্যে ~/.inputrc


আপনি অন্যান্য শাঁস সন্ধান করতেও পারেন। জনপ্রিয় "আধুনিক", বৈশিষ্ট্য সমৃদ্ধ শেলগুলির মধ্যে রয়েছে:


সঙ্গে gnome-terminalআপনি ব্যবহার করতে হবে ESCবোতাম পরিবর্তে ALT সম্মুখে এবং পিছনের দিকে নেভিগেট এক শব্দ করতে। । .. বা কোনও টার্মিনালে স্যুইচ করুন যা এটি প্রয়োগ মেনুতে Alt ব্যবহার করে না। । । এক্সটার্ম বা সাকুরার মতো
সের্গেই কলডিয়াজহনি

@ সার্জ আমার সিস্টেমে নেই, ধন্যবাদ। আমি জানি না আপনি এটি সেভাবে সেট আপ করেছেন কিনা বা এটি যদি উবুন্টু দ্বারা ডিফল্ট কোনও টুইট হয়। Esc প্রায়শই Alt এর প্রতিশব্দ হিসাবে ব্যবহৃত হয়।
টেরডন

যদিও টার্মিনালের মধ্যে ভাগ করে নেওয়ার কোনও কাট নেই।
ক্রেগ হিক্স

7

আপনি আপনার পছন্দের সম্পাদকটিতে একটি খালি বা আংশিক টাইপযুক্ত কমান্ড সম্পাদনা করতে পারেন এবং আপনার পছন্দসই সম্পাদককে সেট EDITORকরে এবং CTRL+ X+ Eবা CTRL+ X/ CTRL+ Eচাপুন যা বর্তমানে সম্পাদিত লাইনটি খোলায় EDITOR;

উদাহরণস্বরূপ, সেটিং EDITORথেকে geditকরতে হবে CTRL+ + X+ + Eএবং CTRL+ + X/ CTRL+ + Egedit মধ্যে বর্তমান লাইন খুলুন।

এই একটি স্থায়ী সমাধান করতে হলে, আপনাকে সেট করতে পারেন EDITORমধ্যে ~/.bashrc

কমান্ডটি সম্পাদনা করতে এটি পুরোপুরি বিস্তৃত গ্রাফিকাল পাঠ্য সম্পাদককে ব্যবহার করতে দেয়; সম্পাদিত কমান্ডটি চালাতে ডকুমেন্টটি সংরক্ষণ এবং বন্ধ করুন।


নিম্নলিখিত বৈশিষ্ট্যগুলিকে যুক্ত করে Zsh এ একই বৈশিষ্ট্য সক্ষম করা যেতে পারে ~/.zshrc:

autoload -U edit-command-line
zle -N edit-command-line
bindkey '^xe' edit-command-line
bindkey '^x^e' edit-command-line

2
fcএফসিইডিডিটি ভেরিয়েবল সেট করা থাকলে কমান্ডের সাথে এটিও আহ্বান করা যেতে পারে । ভাল উত্তর !
সের্গেই কোলোডিয়াজনি 11

1
@ সার্জ থ্যাঙ্কস, তবে পূর্ববর্তী কমান্ডটি fcখোলে (এটি একটি নির্দিষ্ট উপায়ে আরও পরিষ্কার)। আমি সে সম্পর্কে জানতাম না, ধন্যবাদ!
kos

6

টার্মিনালগুলির নিজস্ব কোনও পাঠ্য সম্পাদনা করার ক্ষমতা নেই। টার্মিনালগুলি পাঠ্যের একটি ক্ষেত্র সরবরাহ করে এবং কিবোর্ডকে কোনও কিছুর সাথে সংযুক্ত করে। তবে আপনি টার্মিনালের ভিতরে যে কিছু চালাচ্ছেন তা নির্ধারণ করে যে এটি কী করতে পারে।

শেলস যেমন bashসাধারণত প্রথম জিনিস যা আপনি টার্মিনালের অভ্যন্তরে চালনা করতে পারবেন। শেলগুলি কমান্ডের উপর ভিত্তি করে কাজ করে আপনি কেবল বর্তমান কমান্ড সম্পাদনা করতে পারবেন। চমৎকার প্রদান করে সম্পাদনা কমান্ড বোর্ন শেল বা তুলনায় cshবা kshএখনো কমই কিছু সম্পাদন করা এমনকি একটি ছোট গল্প করতে চান হয়।

আপনি শেলটি চালাতে চাইতে পারেন এমন একটি আদেশ হ'ল পাঠ্য সম্পাদকরা । নেতৃস্থানীয় উদাহরণ এবং vimবা emacsআপনাকে প্রায় কোনও কিছু সম্পাদনা করার ক্ষমতা দেবে। উভয়ই অন্তর্ভুক্ত প্রোগ্রামিং পরিবেশ অন্তর্ভুক্ত অন্তর্ভুক্ত প্রোগ্রামিং আপনার দক্ষতা বাড়ানোর জন্য যা কিছু সমস্যা আপনার মুখোমুখি।

সুতরাং সমাধানটি হ'ল এই সরঞ্জামগুলি কী করছে তা বোঝা এবং কাজের জন্য সঠিকটি বেছে নেওয়া এবং বোঝানো ।


আমি পার্থক্য জানি, কিন্তু বাশের কমান্ড সম্পাদনা উন্নত করার জন্য কিছু করা যেতে পারে?
সার্বজনীনউইকআইডিআইডি

1
স্ক্রিপ্টে রেখেছি?
ছানা

0

সাধারণত টার্মিনালগুলি মাউসের সাহায্যে পাঠ্য নির্বাচনের অনুমতি দেয় তবে শেলটি এটি সম্পর্কে সচেতন হয় না। তাই দুর্ভাগ্যবশত তন্ন তন্ন bash, zsh, fishকিংবা esমাউস-ভিত্তিক সম্পাদনা সমর্থন করতে পারে। আমি মনে করি এটি করার জন্য, তাদের টার্মিনালের উপর আরও বেশি নিয়ন্ত্রণ নেওয়া দরকার।

তবে (এবং এই হল যদি আপনি তেজ বা GVim খুলুন, এবং তারপর ব্যবহার শেল কমান্ড লেখার একটি প্রসারিত একটি বিট):

:!...

তারপরে আপনি লাইনটির যে কোনও জায়গায় যেতে মাউসকে ক্লিক করতে পারেন । ( :set mouse=aএটি ইতিমধ্যে সক্ষম না করা থাকলে আপনাকে প্রথমে প্রয়োজন হবে )) এই মোডে সম্পাদনা কীগুলির সাথে দেখা যেতে পারে:help cmdline-editing

ভিমে বেশ শক্তিশালী কমান্ড হিস্ট্রি মোড রয়েছে, যা আঘাত করে পৌঁছানো যায় q:। সেখান থেকে আপনি ভিমের নরমাল-মোড কমান্ডগুলি ব্যবহার করে ইয়াঙ্ক, মুছে ফেলতে এবং আটকানোতে পারেন। এই মোডে, আপনি মাউস-এর সাথে সিলেক্ট করতে পারেন এবং তারপরে আপনার পছন্দসই বৈশিষ্ট্যটি মুছতে পারেন (আঘাত করে d)।

এখানে একটি উল্লেখযোগ্য সাবধানতা হ'ল ভিম আসলে লাইভ শেল সেশন চালিয়ে রাখে না। আপনার সম্পাদিত প্রতিটি কমান্ড একটি শিশু প্রক্রিয়াতে চালিত হবে। তাই শিশু প্রক্রিয়া দ্বারা পরিবেশের ভেরিয়েবল বা শেল বিকল্পগুলিতে করা কোনও পরিবর্তন হারাবে।

এটি বলেছিল, আপনি ভিম প্রক্রিয়ার মধ্যে থেকে পরিবেশের পরিবর্তনগুলি পরিবর্তন করতে পারেন , এবং এগুলি ভিমের কমান্ড লাইন থেকে ব্যবহার করতে পারেন, এবং এগুলি এমনকি শিশু প্রসেসগুলিতে রফতানি হবে:

:let $FOO="bar"        " the $ and the quotes are mandatory here

:echo $FOO             " Vim's own echo command
bar

:!echo "$FOO"          " Passing the variable to a shell command
bar

:!bash                 " Opening a child shell
$ echo "$FOO"
bar

সুতরাং আপনি যদি ভান করতে ইচ্ছুক হন যে ভিম আসলে একরকম অদ্ভুত শেল, তবে আপনি এর উন্নত সম্পাদনা বৈশিষ্ট্য উপভোগ করতে পারবেন! সম্ভবত সবচেয়ে বড় অসুবিধা হ'ল আপনাকে প্রতিটি কমান্ড শুরু করতে হবে :!অথবা হয় টাইপ করেq:

ওহ এবং যাইহোক, যদি আপনি নিজের বর্তমান ভিম বাফারের মধ্যে শেল কমান্ডের আউটপুট পেতে চান তবে আপনি এটি এর মতো করতে পারেন (তবে সাবধান থাকুন এটি আপনার বর্তমান লাইনটি ক্লোবার করবে):

:,!ls
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.