আমি menu selectআচরণটি ব্যবহার করছি zsh, যা কার্সারের নীচে একটি মেনু আহ্বান করে যেখানে আপনি বিভিন্ন সম্ভাবনা দেখতে পাবেন। আমি এটির জন্য .zshrc বিকল্পটি সেট করেছি
zstyle ':completion:*' menu select=2
ডিফল্টরূপে, Returnএই মেনুতে কোনও সম্ভাব্যতা নির্বাচন করতে টিপলে শব্দটি সম্পূর্ণ হয় - এটি আসলে কমান্ডটি প্রেরণ করে না। উদাহরণস্বরূপ, আমি এটির মতো একটি মেনু পেতে পারি
~ % cd de<TAB>
completing directory:
[Desktop/] Development/
Returnএখানে চাপ দেওয়ার ফলে ফলাফল আসবে
~ % cd Desktop/
আমি তখন চাপ দিতে হবে আমাদের Returnএকটি দ্বিতীয় সময় আসলে কমান্ড পাঠান।
আমি এই আচরণটি এটির জন্য সংশোধন করতে পারি যাতে Returnউভয়কে চাপ দিয়ে সমাপ্তি নির্বাচন করে এবং এটি করে আদেশটি প্রেরণ করে
bindkey -M menuselect '^M' .accept-line
যাইহোক, এটির সাথে একটি সমস্যা রয়েছে: কখনও কখনও কমান্ড না প্রেরণে আমার কোনও ফাইল বা ডিরেক্টরি সম্পূর্ণ করা প্রয়োজন । উদাহরণস্বরূপ, আমার এটি করার প্রয়োজন হতে পারে ln -s Desktop Desktop2- এই bindkeyআচরণের সাথে ডেস্কটপ সম্পূর্ণ করার চেষ্টা করার ফলে ln -s Desktop/কমান্ড হিসাবে প্রেরণ হবে এবং সম্ভবত আমি তা চাই না।
আমি সচেতন যে কেবল স্থান টিপানো আমাকে কমান্ডটি চালিয়ে যেতে দেবে, তবে এটি এখন অভ্যাস।
এটি প্রদত্ত, এটি তৈরি করার কোনও উপায় কি যাতে কেবলমাত্র কয়েকটি আদেশ আপনাকে Returnএকবার চাপতে দেয় (যেমন cd) তবে অন্যান্য সমস্ত কমান্ডের জন্য এটি দুটিবার চাপতে হবে?
.zshrcফাইলটি আপনাকে এটি করার অনুমতি না দেয় তবে আপনি কমান্ড-ভিত্তিক আচরণকে সমর্থন করার জন্য উত্স কোডটি নিজেরাই সামঞ্জস্য না করলে উত্তরটি কেবল হ'ল না। তবে এরপরেও আপনাকে কোন আদেশের জন্য এটি নির্ধারণ করতে হবে, যা কেবলমাত্র একটি অতিরিক্ত প্রবেশের চাপ না দিয়ে নিজের হাতে আরও ক্লান্তিকর ...