बैश पूर्ण प्रसंस्करण खराब हो गया, डिबग कैसे करें?


9

यह सब एक साधारण से शुरू हुआ

alias gv='gvim --remote-quiet'

और अब gv Space Tabकुछ भी नहीं देता है जहां इसे आम तौर पर फ़ाइल नाम देना चाहिए। अजीब तरह,

alias gvi='gvim --remote-quiet'

उम्मीद के मुताबिक काम करता है। मेरे पास स्पष्ट रूप से एक वर्कअराउंड है, लेकिन मैं जानना चाहूंगा कि gvविशेष प्रसंस्करण के लिए मेरी क्या पकड़ है । compoptकोई मदद नहीं gvकरता है क्योंकि वही सेटिंग्स साझा lsकरता है जो फ़ाइल नाम को सही ढंग से पूरा करता है।

$compopt gv
compopt +o bashdefault +o default +o dirnames -o filenames +o nospace +o plusdirs gv
$ compopt ls
compopt +o bashdefault +o default +o dirnames -o filenames +o nospace +o plusdirs ls

completeआदेश से थोड़ा अधिक उपयोगी है, लेकिन यह मुझे बता नहीं है क्यों मेरे दो अक्षर परिवर्तन के लिए चुना गया:

$ complete -p gv
complete -o filenames -F _filedir_xspec gv
$ complete -p ls
complete -o filenames -F _longopt ls
$ complete -p echo
bash: complete: echo: no completion specification
$ alias gvi='gvim --remote-silent'
$ complete -p gvi
bash: complete: gvi: no completion specification

कहां complete -o filenames -F _filedir_xpec gvसे आया?


1
पूर्णता के लिए +1 और <kbd> स्पेस </ kbd> <kbd> टैब </ kbd>
— हांग्जो लेवचुक

जवाबों:


10

मैं समझ गया, आखिरकार। यह /etc/bash_completionsजिसमें छिपा था - विडंबना - मैंने इसे अनदेखा कर दिया क्योंकि यह मेरे फ़ाइलनाम पूर्णताओं पर प्रकट नहीं हुआ था।

सहायक bash_completions को लगता है कि gvइसका मतलब है कि ghostviewयह मुझे केवल फ़ाइल नाम पूरा करने की अनुमति देगा कि यह भूतों को संभाल सकता है:

complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?' gv ggv kghostview

मुझे लगता है कि "बहुत मददगार" के रूप में गिना जाता है। जोड़ा जा रहा है

alias gv='gvim --remote-silent'
complete -r gv 

मेरी ~/.bash_aliasesफ़ाइल पर्याप्त थी।


तारीफ! बड़ी परेशानी!
— डेग May२
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.