brew Завершение команд оболочки
Homebrew включает определения автодополнения для команды brew. Некоторые пакеты также предоставляют определения автодополнения для собственных программ.
В настоящее время поддерживаются zsh, bash и fish.
Чтобы включить поддержку автодополнения, необходимо вручную настроить оболочку. Дело в том, что автодополнения, управляемые Homebrew, хранятся в каталоге HOMEBREW_PREFIX, о котором системная оболочка может не знать. Кроме того, поскольку автоматически настраивать автодополнения bash и zsh надёжным способом сложно, установщик Homebrew не делает этого за вас.
Автодополнения для внешних команд Homebrew не устанавливаются автоматически. Чтобы включить автодополнение для внешних команд (если оно предоставляется), необходимо связать их с HOMEBREW_PREFIX, выполнив brew completions link.
Настройка автодополнения в bash
Чтобы автодополнения Homebrew стали доступны в bash, необходимо подключить определения при запуске оболочки. Добавьте следующее в файл ~/.bash_profile (или, если его нет, в файл ~/.profile):
if type brew &>/dev/null
then
HOMEBREW_PREFIX="$(brew --prefix)"
if [[ -r "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]]
then
source "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
else
for COMPLETION in "${HOMEBREW_PREFIX}/etc/bash_completion.d/"*
do
[[ -r "${COMPLETION}" ]] && source "${COMPLETION}"
done
fi
fi Если вы установите формулу bash-completion, скрипт инициализации автодополнений будет подключаться автоматически (поэтому инструкции из примечаний к формуле выполнять не нужно).
Если вы используете bash от Homebrew в качестве оболочки (т. е. bash версии 4 или новее), вместо этого следует использовать формулу bash-completion@2.
Настройка автодополнения в zsh
Чтобы автодополнения Homebrew стали доступны в zsh, путь zsh/site-functions, управляемый Homebrew, необходимо добавить в FPATH до инициализации средства автодополнения zsh. Это делает brew shellenv, поэтому, если вы выполнили шаги после установки Homebrew, eval "$(brew shellenv)" должен находиться в файле ~/.zprofile (в macOS) или ~/.zshrc (в Linux). Если нужной строки там ещё нет, добавьте её в файл ~/.zshrc, а в Linux убедитесь, что она расположена после eval "$(brew shellenv)":
autoload -Uz compinit compinit
Обратите внимание: если вы используете Oh My Zsh, он вызовет compinit при подключении oh-my-zsh.sh. В этом случае, если вы работаете в Linux, убедитесь, что eval "$(brew shellenv)" вызывается до подключения oh-my-zsh.sh — тогда дополнительная настройка не потребуется.
Также может потребоваться принудительно пересоздать zcompdump:
rm -f ~/.zcompdump; compinit
Кроме того, если при попытке загрузить эти автодополнения вы получаете предупреждения «zsh compinit: insecure directories», возможно, потребуется выполнить следующую команду:
chmod -R go-w "$(brew --prefix)/share"
Настройка автодополнения в fish
Если вы используете fish от Homebrew, настройка не требуется. Удобно!
Если ваш fish получен из другого источника, добавьте следующее в файл ~/.config/fish/config.fish:
if test -d (brew --prefix)"/share/fish/completions"
set -p fish_complete_path (brew --prefix)/share/fish/completions
end
if test -d (brew --prefix)"/share/fish/vendor_completions.d"
set -p fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
end Настройка автодополнения в pwsh
Чтобы автодополнения Homebrew стали доступны в pwsh (PowerShell), необходимо подключить определения при запуске оболочки. Добавьте следующее в файл PROFILE, например: ~/.config/powershell/Microsoft.PowerShell_profile.ps1:
if ((Get-Command brew) -and (Test-Path ($completions = "$(brew --prefix)/share/pwsh/completions"))) {
foreach ($f in Get-ChildItem -Path $completions -File) {
. $f
}
}
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Shell-Completion