Alles begann mit einem einfachen
alias gv='gvim --remote-quiet'
und gv
Space Tabgibt jetzt nichts an, wo es normalerweise Dateinamen geben sollte. Seltsamerweise
alias gvi='gvim --remote-quiet'
funktioniert wie erwartet. Ich habe eindeutig eine Problemumgehung, aber ich würde gerne wissen, was mich gv
für eine spezielle Verarbeitung erwischt. compopt
ist keine Hilfe, da gv
dieselben Einstellungen verwendet werden, mit ls
denen der Dateiname korrekt vervollständigt wird.
$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
Der complete
Befehl ist etwas hilfreicher, sagt mir aber nicht, warum meine beiden Zeichen zur Änderung ausgewählt wurden:
$ 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
Woher kam complete -o filenames -F _filedir_xpec gv
es?
bash
autocomplete
msw
quelle
quelle
Antworten:
Ich habe es endlich verstanden. Es versteckte sich, in
/etc/bash_completions
dem ich - ironischerweise - übersehen habe, da es auf meinen Dateinamen-Vervollständigungen nicht auftauchte.Die hilfreichen bash_completions denken, dass dies
gv
bedeutet,ghostview
dass ich nur Dateinamen vervollständigen kann, von denen erwartet wird, dass Ghostview sie verarbeiten kann:Ich denke, das gilt als "zu verdammt hilfreich". Hinzufügen
zu meiner
~/.bash_aliases
Akte war ausreichend.quelle