Завершение Bash для команд в Mac OS X

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

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

 sudo port install ca 

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

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

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

  • Названия команд после sudo и which
  • Названия пакетов Macports и Homebrew (необязательно)
  • Hostnames in 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-completion (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 для получения инструкций о том, как включить завершение имен портов.

Давайте будем гением компьютера.