वहाँ कुछ मुझे भ्रमित जब मैं एक पार्टी के स्वत: पूर्ण समारोह जो मैं /etc/bash_completion.d/अन्य समापन स्क्रिप्ट को प्रभावित किए बिना COMP_WORDBREAKS को रीसेट कैसे करें?
में यह डाल देता हूँ आदेश में कुछ सुविधा प्राप्त करने के लिए लागू है, मैं शब्द तोड़ निकालना चाहते हैं $COMP_WORDBREAKS
परिवर्तनीय कॉलन (:
) $COMP_WORDBREAKS
की शुरुआत में स्लैश (/
) जोड़ें।
COMP_WORDBREAKS=" /'><=;|&("
_mytool()
{
local cur=${COMP_WORDS[COMP_CWORD]}
compopt -o nospace
# my implement here
COMPREPLY=($(compgen ..........my_implement......... -- $cur))
}
complete -F _mytool mytool
हालांकि, मैं COMP_WORDBREAKS
सीधे रीसेट नहीं कर सकते क्योंकि मूल्य अन्य पूरा होने स्क्रिप्ट के साथ साझा किया जाता है। जब तक पूरा करने का कार्य कहलाता है, वैरिएबल COMP_WORDS
सरणी पहले से ही पॉप्युलेट हो चुकी है, इसलिए स्थानीय रूप से COMP_WORDBREAKS
में कोई प्रभाव नहीं पड़ता है।
क्या एक पूर्ण स्क्रिप्ट में COMP_WORDBREAKS
बदलने और अन्य स्क्रिप्ट पर कोई प्रभाव नहीं है?
$ echo $BASH_VERSION
4.2.10(1)-release
आपको बहुत धन्यवाद, यह रूबी पर रूबी में मेरे रेक कार्य पूर्ण होने के लिए वास्तव में उपयोगी था! इसके अलावा, दस्तावेज़ों में अनुभाग E13 को इंगित करने के लिए धन्यवाद। – ndbroadbent
यह केवल ठीक से काम करता है, जब मैं इस पंक्ति को 'cur = "$ {COMP_WORDS [COMP_CWORD]}" '_get_comp_words_by_ref -n से पहले रखता हूं: cur' भी जानना अच्छा होता है, अगर आप भी पिछली बार उपयोग करते हैं, तो आप इसे जोड़ सकते हैं अंत '_get_comp_words_by_ref -n: cur prev' – jmk
जब मेरे पास संदिग्ध समापन होता है और दो बार हिट होता है तो मुझे इस समाधान का उपयोग करते समय मैंने जो लिखा है उसके आधार पर गलत सुझाव प्राप्त होते हैं। Http: // stackoverflow देखें।कॉम/प्रश्न/28479216/कैसे-देना-सही-सुझाव-टू-टैब-पूर्ण-जब-मेरे-शब्द-युक्त-कोलन – toftis