Подробности о моей системе: я запускаю Ubuntu 12.04.4 LTS в Oracle Virtual Box 4.3.6, начиная с Windows 8.1, установленной на ноутбуке Asus. Я использую версию bash_completion версии 1.3 (я получил это из комментариев в файле / etc / bash_completion)
Я думал, что bash всегда делал автоматическое завершение для файлов и каталогов после команды. Но после поиска в Google и более подробного ознакомления с файлом bash_completion я понял, что это разные для разных команд. Но я столкнулся с проблемой с этой функцией автозаполнения bash при использовании альтернативного способа вызова emacs -nw.
Я определил ee как функцию в файле ~/.bash_aliases. Я знаю, что это не псевдоним, но я просто использую функцию, чтобы сделать то, что сделал бы псевдоним:
function ee () {
emacs -nw "$@"
}
export -f ee
Я думал, что все еще могу использовать tab с функцией ee, если я набрал частичное имя файла. Это просто не работает. Если я набрал emacs -nw, за которым следует неполное имя файла, то завершение вкладки отлично работает. Я действительно не понимаю, чего здесь нет. Я проверил вывод команды complete -p, и я получаю следующее для обоих emacs и ee:
eakangk@eakan-u-vbox:~$ complete -p | grep 'ee'
complete -F _filedir_xspec ee
eakangk@eakan-u-vbox:~$ complete -p | grep 'emacs'
complete -F _filedir_xspec emacs
Не означает, что обе команды должны давать мне такое же поведение при попытке автозаполнения? Изменить: я не видел строку ee в файле /etc/bash_completion при отправке вопроса. Но теперь я знаю, что он есть. Но файл / etc / bash_completion имеет следующие строки:
complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee
complete -f -X '*.@(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
Что я здесь делаю неправильно?