35

Как получить fink и macports для автозаполнения имен программ при вводе команд, как в apt-get в Ubuntu?

Например, когда я печатаю

sudo port install ca

и нажмите вкладку, я хочу, чтобы терминал автоматически завершал или показывал мне доступные команды.

OS X даже не выполняет команды автозаполнения после sudo !

1 ответ1

68

Баш-завершение добавляет завершение для:

  • Имена команд после 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 для получения инструкций о том, как включить завершение для имен портов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .