bash tamamlama işlemi kötüye gitti, nasıl hata ayıklanır?


9

Her şey basit bir

alias gv='gvim --remote-quiet'

ve şimdi gv Space Tabnormalde dosya adları vermesi gereken hiçbir şey vermiyor. İşin garibi,

alias gvi='gvim --remote-quiet'

beklendiği gibi çalışır. Açık bir çözüm var, ama gvözel işleme için neyi yakaladığını bilmek istiyorum . compoptolarak hiçbir faydası yoktur gvAynı ayarlar olarak hisselerin lsdoğru dosya adı tamamlama yapar ki.

$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

completeKomut biraz daha yararlıdır ama benim iki karakter değişiklik için saydı var neden söyle değildir:

$ 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

Nereden complete -o filenames -F _filedir_xpec gvgeldi?


1
Tamlık için +1 ve <kbd> Boşluk </kbd> <kbd> Sekmesi </kbd>
Aleksandr Levchuk

Yanıtlar:


10

Sonunda anladım. Bu saklandığına /etc/bash_completionsironik - - hangi benim dosya adı tamamlama görünmedi gibi gözardı.

Yararlı bash_completions, bunun sadece hayalet görünümünün işleyebileceğini beklediği dosya adlarını tamamlamama izin vereceği gvanlamına gelir ghostview:

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

Bence bu "çok yardımcı". Ekleme

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

benim ~/.bash_aliasesdosyam yeterliydi.


Tebrikler! Harika sorun giderme!
dag729
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.