স্টাডআউটে স্ট্রিংয়ের পরিপূর্ণতা আউটপুট কিভাবে করবেন?


15

কিছু gitকমান্ডের অনেকগুলি বিকল্প রয়েছে এবং এটি প্রায়শই আমার প্রয়োজনের জন্য অনুসন্ধানের জন্য দরকারী হবে - আমি কেবলমাত্র বিকল্পটি সন্ধান করছিলাম যা TABপ্রস্থটি নিয়ন্ত্রণ করে git-gui, তবে প্রায় 200 টি পরিপূর্ণতা রয়েছে git config। একটি সুস্পষ্ট কর্মসূচী হ'ল সমস্ত পরিপূর্ণতা একটি সম্পাদকের মধ্যে অনুলিপি করা এবং সেগুলির মাধ্যমে অনুসন্ধান করা, তবে আমি বরং করব

[something] | grep tab

এর জন্য কোনও পৃষ্ঠা manবা infoপৃষ্ঠাগুলি নেই compgen, help compgenএমনকি তার নিজস্ব বিকল্পগুলিও ব্যাখ্যা করে না এবং এর জন্য কোনও স্বয়ংক্রিয় পূর্ণ নেই compgen(এটি কী বিদ্রূপের জন্য?)।

পিএস: compgen -Aকাজ করে না।

পিপিএস: এটি সম্পর্কে কোনও প্রশ্ন নয় git-gui- ট্যাব প্রস্থের প্রশ্নের সমাধান অন্য কোথাও ছিল।

পিপিপিএস: এটি স্বয়ংক্রিয়ভাবে সমাপ্ত কমান্ডগুলি সম্পর্কে নয় , কেবলমাত্র কমান্ড প্যারামিটারগুলি


এটি "ট্যাব সম্পূর্ণ" এর আউটপুটটি কীভাবে পাইপ করা যায় তার অনুরূপ ? , তবে সেখানে গৃহীত উত্তরটি কমান্ডগুলি সম্পূর্ণ করার জন্য ছিল, যুক্তি নয়
মাইকেল মরোজেক

উত্তর:


10

আপনি নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন, যা sudoস্বয়ংক্রিয়ভাবে সমাপ্তি সমাপ্তি তালিকা তৈরি করে একইভাবে ব্যবহার করে :

comp() {
    local COMP_LINE="$*"
    local COMP_WORDS=("$@")
    local COMP_CWORD=${#COMP_WORDS[@]}
    ((COMP_CWORD--))
    local COMP_POINT=${#COMP_LINE}
    local COMP_WORDBREAKS='"'"'><=;|&(:"
    # Don't really thing any real autocompletion script will rely on
    # the following 2 vars, but on principle they could ~~~  LOL.
    local COMP_TYPE=9
    local COMP_KEY=9
    _command_offset 0
    echo ${COMPREPLY[@]}
}
comp git config ''

যেখানে _command_offsetব্যাশ-সমাপ্তি (প্যাকেজ) এ সংজ্ঞায়িত করা হয়েছে।

দ্রষ্টব্য: ফাংশনটি একটি ইন্টারেক্টিভ শেলটিতে চালানো দরকার (উদাহরণস্বরূপ যদি এটি কোনও ফাইলে থাকে তবে ফাইলটি কেবল চালানোর পরিবর্তে সসার করা দরকার)) বা প্রয়োজনীয় সমাপ্তির বিধি / ফাংশন সংজ্ঞায়িত করা হবে না।

পুনশ্চ. compgen -Aকেবল অন্তর্নির্মিত ক্রিয়াগুলির জন্যই কাজ করে, আপনার যা চেষ্টা করা উচিত ছিল (তবে কোনওটিই কাজ করে না) হ'ল compgen -F(বা আসলে compgen -o bashdefault -o default -o nospace -F _git)। এটি কাজ না করার কারণ (এবং কমপেজ / সম্পূর্ণ সহ ব্যাশ অন্তর্নির্মিত কমান্ডগুলির জন্য ডক) বাশ (1) এ পাওয়া যাবে ।


@ l0b0 আশা করি সব ক্ষেত্রেই কাজ করে।
yuyichao

দুর্দান্ত, এটি কাজ করে! আমি কয়েকটা ছোট ছোট টুইট করেছি এবং এখন এটি আমার .Bash_aliases এ ভাল। আপনি সম্ভবত ছাঁটাই করতে চাইতে পারেন কেবলমাত্র সমাধানটি বাকী রয়েছে তবে আপনি অনুগ্রহ পেয়ে যাবেন তাতে কোনও সন্দেহ নেই। আমি আমার আলোচনার মন্তব্যগুলি সরিয়ে দেব কারণ সেগুলি আর প্রাসঙ্গিক নয়।
l0b0

1
আমি খুঁজে পেয়েছি যে ইন্টারেক্টিভ শেল এ এটি ব্যবহার করে ইতিমধ্যে জায়গায় থাকা ট্যাব-সমাপ্তি ধ্বংস করতে পারে। ফাংশনে প্রতিটি ভেরিয়েবল স্থানীয় করা সেই সমস্যার সমাধান করে। (উদাঃ local COMP_LINE="$*")
AL ফ্লানাগান

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