Баш-завершение добавляет завершение для:
- Названия команд после
sudo
иwhich
- Названия пакетов Macports и Homebrew (необязательно)
- Имена хостов
known_hosts
для таких команд, какssh
- Папки на
CDPATH
И так далее. Вы можете напечатать список команд завершения с помощью complete -p
и просмотреть источник функции с помощью declare -f
.
Установка Homebrew или MacPorts и Bash
Во-первых, вы должны установить Homebrew или MacPorts в соответствии с инструкциями. Примечание. Не устанавливайте оба, так как они конфликтуют.
Затем установите более новую версию Bash. Встроенный Bash в OS X немного стар, и вы получите больше вариантов завершения с Bash> 4.1, которые вы можете получить через
brew install bash
или
sudo port install bash
в зависимости от того, используете ли вы Homebrew или MacPorts.
Установка bash-дополнения с помощью Homebrew
Для установки bash-completion
вам необходимо:
brew install bash-completion
И добавьте следующее к себе ~/.bash_profile
:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
В настоящее время Homebrew устанавливает более старую версию bash-complete (1.3), которая все еще работает с Bash 3.x, но все же рекомендуется использовать Bash 4.x.
Установка bash-дополнения с MacPorts
С MacPorts:
sudo port install bash-completion
Затем добавьте в свой ~/.bash_profile
:
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
. /opt/local/etc/profile.d/bash_completion.sh
fi
См. Trac.macports.org/wiki/howto/bash-completion для получения инструкций о том, как включить завершение для имен портов.
bash-completion
Пакет MacPorts предоставляет поддержку для завершения имен пакетов в качестве дополнительных аргументов послеport <verb>
. Смотрите здесь , строки 48-58. Это поведение упоминается в википедии MacPorts , в которой говорится: « Это не только для файлов и каталогов, но и, например, для командport
. Таким образом, вы вводитеport <Tab>
и получаете список всех возможных команд », хотя в нем только явно упоминается завершение глаголов (что намного проще).variants.conf
Не для завершения для себя MacPorts; examples.conf определяет варианты автоматической установки для всех портов, как описано на вики-странице, на которую вы ссылаетесь. Добавление этой строки приводит к включению поддержки завершения bash, когда это возможно для устанавливаемых портов.make
автозаполнение, именно то, что я хотел.