ডিফল্টরূপে, zsh এর সমাপ্তি ইঞ্জিন কেবল আপনার টাইপ করা কিছুতে যুক্ত করার চেষ্টা করে। আপনি এটিকে একটি উপসর্গ যোগ করার চেষ্টা করার জন্য কনফিগার করেছেন। সাধারণ ইন্টারেক্টিভ সমাপ্তি কনফিগারেশন ইঞ্জিন ( compinstall
) এটিকে "ম্যাচিং কন্ট্রোল → স্ট্রিং সমাপ্তি" এর অধীনে উপলব্ধ করে। এটি আপনার মধ্যে এর মতো একটি লাইন সন্নিবেশ করায় .zshrc
:
zstyle ':completion:*' matcher-list '' 'l:|=* r:|=*'
zstyle
Builtin সেট (বেশিরভাগই) সমাপ্তির সেটিংস। matcher-list
সমাপ্তির শৈলী উপায়ে পারম্পর্য মধ্যে চেষ্টা একটি তালিকা বাঁধন যখন সেখানে অন্তত একটি ম্যাচ। খালি স্ট্রিংয়ের অর্থ ডিফল্ট সমাপ্তি (কেবল প্রত্যয়)। ম্যাচিং নিয়ন্ত্রণ জাদুমন্ত্রোচ্চারণ l:|=* r:|=*
উপায়ে একটি উপসর্গ ম্যাচিং চেষ্টা *
এবং একটি প্রত্যয় ম্যাচিং *
, IE কোনো উপসর্গ ও প্রত্যয়।
আপনি _
সম্পূর্ণরূপে শুরু হওয়া উপসর্গগুলি নিষেধ করতে পারেন । এটি এখনও শব্দের _
সমাপ্তি এবং একটি উপসর্গ যোগ করে সম্পূর্ণ করার অনুমতি দেয় তবে উপসর্গটি শুরু নাও হতে পারে _
।
zstyle ':completion:*' matcher-list '' 'l:|=[^_]* r:|=*'
এটি সমস্ত কমপ্লিমেন্টের ক্ষেত্রেই প্রযোজ্য, কেবলমাত্র কমান্ডের নামের সম্পূর্ণ নয়। কমান্ডের নামগুলিতে এটি কীভাবে সীমাবদ্ধ রাখতে হয় তা আমি জানি না।
শুরু হওয়া কমান্ডের নামগুলি আরও স্পষ্টভাবে বাদ দেওয়ার উপায় থাকতে হবে _
তবে কীভাবে তা আমি জানি না। প্রথম ignored-patterns
শুরুটি সমাপ্তির শৈলীর সাথে।
zstyle ':completion:*:*:-command-:*:*' ignored-patterns '_*'
এটি শুরু হওয়া ম্যাচগুলি বাদ দেয় _
; তবে, যদি কোনও মিল না থাকে, তবে zsh আবার এড়িয়ে যাওয়ার নিয়মগুলি না করে চেষ্টা করে। এর মধ্যে ভাল এটি হ'ল কমান্ডটি যদি প্রথম স্থানে আন্ডারস্কোর দিয়ে শুরু হয় তবে এটি দ্বিতীয় পাসে সম্পূর্ণ হবে। খারাপ অংশ zsh এইভাবে যদি সেখানে কোনো মিল নেই একটি আন্ডারস্কোর যাহাই হউক না কেন যোগ করার চেষ্টা করবে, তাই যদি আপনি vi
এবং view
কিন্তু vim
তারপর টিপে Tabপরে vi
ইচ্ছা অফার vi
এবং view
কিন্তু _vim
, কিন্তু যদি আপনি টাইপ vim
তারপর সমাপ্তির অফার করবে _vim
।