Завершение Bash для команд в Mac OS X
Как я могу получить fink
а также macports
для автозаполнения имен программ при наборе команд, как в Ubuntu apt-get
?
Например, когда я печатаю
sudo port install ca
и нажмите вкладку, я хочу, чтобы терминал автоматически завершал или показывал мне доступные команды.
OS X даже не выполняет команды автозаполнения после sudo
!
1 ответ
Баш-завершение добавляет завершение для:
- Названия команд после
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
См. http://trac.macports.org/wiki/howto/bash-completion для получения инструкций о том, как включить завершение для имен портов.