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


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.