Semuanya dimulai dengan sederhana
alias gv='gvim --remote-quiet'
dan sekarang gv
Space Tabtidak memberikan apa pun di tempat yang seharusnya memberikan nama file. Anehnya,
alias gvi='gvim --remote-quiet'
bekerja seperti yang diharapkan. Saya jelas punya solusi, tetapi saya ingin tahu apa yang saya tangkap gv
untuk pemrosesan khusus. compopt
tidak membantu karena gv
berbagi pengaturan yang sama seperti ls
yang tidak menyelesaikan nama file dengan benar.
$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
The complete
Perintah sedikit lebih bermanfaat tetapi tidak memberitahu saya mengapa dua karakter saya mendapat dipilih untuk perubahan:
$ 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
Dari mana complete -o filenames -F _filedir_xpec gv
datangnya?
bash
autocomplete
msw
sumber
sumber
Jawaban:
Akhirnya saya mengerti. Itu bersembunyi di
/etc/bash_completions
mana - ironisnya - saya diabaikan karena tidak muncul pada nama file saya.Bash_completions yang bermanfaat berpikir itu
gv
artinyaghostview
hanya mengizinkan saya untuk melengkapi nama file yang diharapkan dapat ditangani ghostview:Saya pikir itu dianggap sebagai "sangat membantu". Menambahkan
ke
~/.bash_aliases
file saya sudah cukup.sumber