কাস্টম বাশ ট্যাব সমাপ্তি


34

cooltoolবিকল্পগুলির তালিকার সাথে আমার কাস্টম কনসোল ইউটিলিটি রয়েছে

fooOption
barOption

কী টিপে বিকল্পগুলি স্বতঃপূরণে সক্ষম করতে আমার কী করা উচিত tab?

আমি ব্যবহারকারী টাইপ করা মানে

$ ./cooltool foo_

তারপর চাপা tab। এবং তারপর

$ ./cooltool fooOption _

হাজির.


1
ক্রস পোস্ট করবেন না।
ওফার্স

2
লক্ষ্য করুন যে এটি একটি স্থানান্তরিত হয়েছে এবং অন্যটি নয়। আমি মনে করি অনেক ব্যবহারকারী এখনও বুঝতে পারেন না যে তারা একাধিক এসই সাইটে কোনও প্রশ্ন পোস্ট করা উচিত নয়। এগুলি ফোরামগুলি আলাদা করতে ব্যবহার করা হয়েছে যা একটি ইউনিফাইড সিস্টেম নয়, যেখানে আপনি দ্রুত উত্তরের আরও ভাল সুযোগের জন্য কয়েকটি আলাদা ফোরামে জিজ্ঞাসা করতে পারেন।
jcrawfordor

উত্তর:


2

এর জন্য একটি বাশ সমাপ্তির স্ক্রিপ্ট লিখুন cooltoolব্যাশ-সমাপ্তি প্যাকেজ অনেক জনপ্রিয় প্রোগ্রাম, যা আপনি উদাহরণ হিসাবে ব্যবহার করতে স্ক্রিপ্ট দিয়ে আসে।


40

সবচেয়ে সহজ উপায় হল আপনার .bashrc এ নিম্নলিখিতগুলি যুক্ত করা।

_cooltool()
{
    local cur=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=( $(compgen -W "fooOption barOption" -- $cur) )
}
complete -F _cooltool cooltool

আপনি যখনই টাইপ করবেন cooltool f[TAB][TAB]তখন _cooltool()ফাংশনটি শুরু করা হবে। এটি আপনার বর্তমান আংশিক শব্দটি কী তা কার্যকর compgenকরবে এবং তারপরে কোন বিকল্পগুলির সাথে মেলে তা কার্যকর হবে। এগুলি বলা হয় COMPREPLYএমন অ্যারেতে সংরক্ষণ করা হয় যা প্রদর্শিত হয়। বিস্তারিত দেখুন man completeএবং man compgenজন্য।

একটি সুন্দর টিউটোরিয়াল জন্য চেক আউট: আপনার নিজস্ব বাশ সম্পূর্ণ ফাংশন রচনা


7

আপনি আপনার সিস্টেমে আপনার /etc/bash_completion.d ডিরেক্টরিতে আরও ঘনিষ্ঠভাবে নজর রাখতে চাইতে পারেন।

এছাড়াও আপনি এই ভূমিকা পড়া উচিত । পরিচিতির দ্বিতীয় অংশটি আপনার প্রয়োজন।


1
আমি ম্যাক ওএস এক্স 10.6 ব্যবহার করছি, সুতরাং কোনও /etc/bash_completion.d ডিরেক্টরি নেই

আহ ঠিক আছে, জেনে রাখা ভাল।


2

কুকবেনের উত্তর ছাড়াও, আপনি এটি করতে পারেন:

complete -W "fooOption barOption" cooltool

আপনি যদি কেবল স্ট্রিংয়ের শুরু থেকে শব্দের একটি তালিকা মেলাতে চান। দেখে মনে হচ্ছে যে সম্পূর্ণ এবং কমপেনগুলি সর্বাধিক বিকল্পগুলি ভাগ করে। আমি যে কমান্ডগুলি ব্যবহার করি সেগুলিতে কেবল "স্ট্রিংয়ের শুরু" মিলছে তা আমি লক্ষ্য করেছি, তাই আমি খুব সুন্দরভাবে দেখতে পেলাম যে আপনি _ কুলটুল ফাংশনে অন্যান্য কাজ করতে পারেন যেমন:

COMPREPLY=( $(grep "$cur" ~/my_potential_args.txt) )

বিকল্প নামের যে কোনও জায়গায় মেলে।

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