Wszystko zaczęło się od prostego
alias gv='gvim --remote-quiet'
i teraz gv
Space Tabnie daje nic tam, gdzie normalnie powinno dawać nazwy plików. Dziwnie,
alias gvi='gvim --remote-quiet'
działa zgodnie z oczekiwaniami. Oczywiście mam obejście, ale chciałbym wiedzieć, co przyłapuje mnie gv
na specjalnym przetwarzaniu. compopt
nie pomaga, ponieważ gv
udostępnia te same ustawienia, ls
co prawidłowe uzupełnianie nazw plików.
$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
Komenda jest nieco bardziej pomocne, ale nie mówi mi dlaczego moje dwie postacie, ale wyróżniony zmiany:
$ 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
Skąd się wziął complete -o filenames -F _filedir_xpec gv
?
bash
autocomplete
msw
źródło
źródło
Odpowiedzi:
W końcu to rozumiem. Ukrywał się, w
/etc/bash_completions
którym - jak na ironię - przeoczyłem, ponieważ nie pojawił się na uzupełnieniach mojej nazwy pliku.Pomocne bash_completions uważa, że
gv
to oznaczaghostview
, że pozwoli mi tylko na uzupełnienie nazw plików, które według niego mogą być obsługiwane przez ghostview:Myślę, że liczy się to jako „zbyt cholernie pomocne”. Dodawanie
do mojego
~/.bash_aliases
pliku było wystarczające.źródło