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


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.