আমি লিনাক্স মিন্ট 14-এ অন্যান্য জিনিসগুলির মধ্যে 4.2.37 বাশ ব্যবহার করছি।
যখন আমি টাইপ করে পরিবেশের পরিবর্তনশীলের নামটি স্বতঃসিদ্ধ করি Tab, তখন এটি স্থানের পরে পরিবর্তকের পরিবর্তে প্রসারিত হয়।
যদি ভেরিয়েবলের মানটি একটি ডিরেক্টরি নাম হিসাবে ঘটে থাকে তবে আমি এটির পরে চলকের নামটি প্রসারিত করতে চাই /
।
উদাহরণস্বরূপ, যদি আমি টাইপ করি:
$ ls $HOM<tab>
এটি প্রসারিত:
$ ls $HOME _
যেখানে _
কার্সারের অবস্থান চিহ্নিত করে। সমস্যাটি হ'ল আমি তখন সাধারণত আমার হোম ডিরেক্টরিতে কোনও ফাইল বা ডিরেক্টরিতে নাম লিখতে চাই, যার অর্থ আমাকে টাইপ করতে হবে backspaceএবং তারপরে /
।
তাই আমি চাই উপরে প্রসারিত করুন:
$ ls $HOME/_
আমি সম্পূর্ণ ভেরিয়েবলের নাম টাইপ করলে একই জিনিস ঘটে থাকে; পরে ls $HOME
, tabএকটি স্থান যুক্ত করে, এবং আমি এটি একটি যুক্ত করতে চাই /
।
(এবং অবশ্যই আমি /
ভেরিয়েবলের মান ডিরেক্টরি নাম না হলে এটি যুক্ত করতে চাই না))
বাশ কমান্ডের মাধ্যমে বা আমার আপডেট করে আমার পছন্দ মতো আচরণ করার জন্য আমি বলার কোনও উপায় থাকতে পারি $HOME/.inputrc
?
দ্রষ্টব্য: আমি বিশেষভাবে আমার পছন্দ মতো tabআচরণ করার উপায় খুঁজছি । বিভিন্ন কীস্ট্রোকের সাথে একই আচরণ অর্জনের উপায়গুলি আকর্ষণীয় হবে তবে আমার প্রশ্নের উত্তর দেবে না।
(আমি /etc/profile.d/bash_completion.sh
আমার সিস্টেমে অক্ষম হয়েছি কারণ এটির সাথে খারাপভাবে ইন্টারঅ্যাক্ট করে set -o nounset
। একটি দ্রুত পরীক্ষা নির্দেশ করে যে এটি সম্ভবত আমার প্রশ্নের সাথে প্রাসঙ্গিক নয়))
ঘটনাচক্রে, tcsh এটি করে: একটি পরিবেশের পরিবর্তনশীল প্রদত্ত $FOOBAR
, টাইপিং যদি এটি ডিরেক্টরিকে নির্দেশ করে তবে $FOOBA<tab>
প্রসারিত হয় (একটি স্থান সহ) যদি তা না করে। না, আমাকে টিসিএস-এ ফিরে যেতে প্ররোচিত করার পক্ষে এটি যথেষ্ট নয়। zsh পাশাপাশি এটি করে।$FOOBAR/
$FOOBAR