В моем Kubuntu нет /usr/share/bash-completion/completions/vim
файла, но файл
/usr/share/bash-completion/bash_completion
содержит эту строку:
_install_xspec '*.@(o|so|so.!(conf|*/*)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite
Обратите внимание, что есть строки для разных инструментов, их много.
Если я включу set -x
и затем vim
tab, я вижу, что шаблон используется несколько раз, наконец, даже с его прописной версией, например так:
compgen -f -X '!!(*.@(o|so|so.!(conf|*/*)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)|*.@(O|SO|SO.!(CONF|*/*)|A|[RS]PM|GIF|JP?(E)G|MP3|MP?(E)G|AVI|ASF|OGG|CLASS))' --
Я временно удалил |a
из bash_completion
файла. Новые экземпляры bash
начали распознавать *.a
(и *.A
) файлы.
Я считаю, что шаблон определяет файлы, которые обычно не нужно редактировать как текст. Этот список (который явно нечувствителен к регистру) говорит нам, что a
может обозначать библиотеку в Unix. Я думаю, что это причина, чтобы исключить это. Обратите внимание, o
и so
другие распространенные расширения для бинарных файлов в Unix, они также в шаблоне.