একটি ইন্টারেক্টিভ শেলের কোনও পাথের অংশ কীভাবে মুছবেন?


19

কোনও পথের একটি উপাদান মোছার জন্য কি ব্যাশ এবং zsh এ একটি শর্টকাট আছে? উদাহরণস্বরূপ, যদি আমি টাইপ করি ls ~/local/color/, এবং কার্সারটি লাইনের শেষে রয়েছে, শেষে শর্টকাটটি মুছতে কি আছে color/? আদর্শভাবে আমি ভিআই-মোড এবং ইমাকস-মোড উভয় ক্ষেত্রেই সমাধান চাই

উত্তর:


25

ডিফল্ট ব্যাশ ইম্যাক্স মোডে সর্বাধিক ব্যবহৃত কমান্ডগুলি সর্বাধিক ব্যবহৃত ব্যবহৃত কীবোর্ডগুলির জন্য:

আন্দোলন

  • Ctrl- p, বা Up: পূর্ববর্তী কমান্ড
  • Ctrl- n, বা Down: পরবর্তী কমান্ড
  • Ctrl- b, বা Left: পূর্ববর্তী অক্ষর
  • Ctrl- f, বা Right: পরবর্তী অক্ষর
  • Alt- b: পূর্ববর্তী শব্দ
  • Alt- f: পরের শব্দ
  • Ctrl- a, বা Home: কমান্ড শুরু
  • Ctrl- e, বা End: কমান্ডের সমাপ্তি

সম্পাদনা করা

  • BkSpc: পূর্ববর্তী অক্ষর মুছুন
  • Ctrl- d, বা Del: বর্তমান অক্ষর মুছুন
  • Alt- BkSpc: বাম থেকে শব্দ মুছুন
  • Alt- d: ডান থেকে ডান মুছুন
  • Ctrl- u: কমান্ড শুরু করতে মুছুন
  • Ctrl- k: কমান্ড শেষ করতে মুছুন
  • Ctrl- y: শেষ কাটা পেস্ট

টুকরা-টাকরা

  • Cltr- /: পূর্বাবস্থা
  • Cltr- r: বর্ধিত পশ্চাদপদ ইতিহাস অনুসন্ধান

2
পরিপূরক: zsh এ এই উদ্দেশ্যে শর্টকাট সেট করুনbindkey [key] vi-backward-kill-word
ভাইয়ান

ধন্যবাদ। আমি এটিকে আমার ~ / .zshrc ফাইলে যুক্ত করেছি এবং আমি যখন Alt + ব্যাকস্পেস: বাইন্ডকি "^ [^" চাপি তখন তা আমার পক্ষে ভাল কাজ করে? " VI-পূর্ববর্তী-হত্যা-শব্দ। এটা আদর্শ নয়।
টিম স্টুয়ার্ট

Alt-Bckspc এবং Alt-d ফাইলপ্যাথগুলি দিয়ে চেষ্টা করেছি যা তাদের চেষ্টা করেছি। (চালু ব্যাশ)
অচপল

10

এছাড়াও আছে unix-filename-ruboutজন্য Readline!

# in ~/.inputrc
# press ctrl-b to delete unix filename parts
# see: man bash | less -p 'unix-filename-rubout' and
#      http://www.calmar.ws/vim/vi-bash.html
set editing-mode vi
set keymap vi
"\C-b": unix-filename-rubout

2
আইএমএইচও unix-filename-ruboutহ'ল স্ল্যাশ বা হোয়াইটস্পেস মুছে ফেলার কারণে জিজ্ঞাসিত প্রশ্নের সঠিক উত্তর, যেখানে Alt-BkSpcহাইফেন, আন্ডারস্কোর, ডট ইত্যাদির মতো চরিত্রগুলিতে থামবে
স্টিভ

6

ডিফল্ট ব্যাশে (এবং আমি zsh অনুমান করছি) ইমাস-মোডে আসবে। আপনি এরকম কিছু চেষ্টা করতে পারেন:

Esc + bকার্সারটি একটি শব্দ রেখে দেবে। Ctrl + kলাইন শেষ না হওয়া পর্যন্ত মুছে ফেলা হবে।

বেশিরভাগ আধুনিক শেল (বাশের মতো) উন্নত কমান্ড লাইন সম্পাদনা বৈশিষ্ট্যগুলি প্রয়োগ করবে। এই কমান্ডগুলি হয় ইমাস সম্পাদনার কাছাকাছি (লাইন শুরুর জন্য Ctrl + A, লাইন শেষের জন্য Ctrl + E, ...)।

আপনি যদি ভিআই-এর মতো সম্পাদক সহ ফ্যামিলার হন তবে আপনি ভিআই-মোডের অনুমতি দেওয়ার চেষ্টা করতে পারেন।

set -o vi

এটি আপনার শেলটিকে vi-মত মোড দেয় (কমান্ড মোড / সন্নিবেশ মোড), এবং আপনি স্ট্যান্ডার্ড কমান্ডগুলিতে অ্যাক্সেস পাবেন (মুছে ফেলার জন্য ডি, প্রতিস্থাপনের জন্য r, ...)

ভিআই মোডে আপনি এখানে বর্ণিত যা করবেন তা এখানে পাবেন:

Esc (command mode); d; b.

1
আমি বলব না "কমান্ড লাইন সম্পাদনাটি আরও শক্তিশালী এবং ভিআই-মোডে সম্পূর্ণ", ইমাস মোডের আপনি vi মোডে যা কিছু করতে পারেন তার কমান্ড রয়েছে ।
এনজোটিব

আমি স্বীকার করি আমি কিছুটা দূরে সরে এসেছি। আমি এটাকে নতুন করে বলব।
রাহমু

আমাকে স্মরণ করিয়ে দেওয়ার জন্য ধন্যবাদ ব্যাশে ভিআই-মোড রয়েছে, তাই আমি dbএই দৃশ্যে ব্যাশ ব্যবহার করতে পারি । আমি vi-backward-kill-wordzsh এও দেখতে পেয়েছি যা আমি চাই এবং এটি বাশ-এ ভিআই-মোড সেট করার চেয়ে আরও সুবিধাজনক। তবে আমি এখনও এই কাজের জন্য ইমাস মোড শর্টকাটটি খুঁজে পেতে চাই ।
ভায়েন

বা "Alt-bC"। এই উপায়টি কোনও চলমান চরিত্র ছেড়ে দেয় না, যা dbকিছু ক্ষেত্রে হয়।
ওয়াইল্ডকার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.