Spec-Zone.ru › Homebrew

Автозаполнение оболочки Homebrew

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 >= v4), вы должны использовать формулу bash-completion@2 вместо этого.

Настройка автозаполнения в zsh

Чтобы сделать автозаполнение Homebrew доступным в zsh, необходимо вставить путь, управляемый Homebrew, для zsh/site-functions в ваш FPATH перед инициализацией механизма автозаполнения zsh. Добавьте следующее в ваш ~/.zshrc:

if type brew &>/dev/null
then
  FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"

  autoload -Uz compinit
  compinit
fi

Это должно быть сделано до вызова compinit. Обратите внимание, что если вы используете Oh My Zsh, он вызовет compinit за вас, поэтому это необходимо сделать до вызова oh-my-zsh.sh. Это можно сделать, добавив следующую строку в ваш ~/.zprofile после инициализации Homebrew вместо изменения вашего ~/.zshrc, как указано выше:

FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"

Возможно, также потребуется выполнить принудительную пересборку zcompdump:

rm -f ~/.zcompdump; compinit

Кроме того, если при попытке загрузить это автозаполнение вы получаете предупреждения «zsh compinit: небезопасные каталоги», вам может потребоваться выполнить следующее:

chmod -R go-w "$(brew --prefix)/share"

Настройка автозаполнения в fish

Если вы используете fish Homebrew, никакая настройка не требуется. Просто и удобно!

Если ваша fish из другого источника, добавьте следующее в ваш ~/.config/fish/config.fish:

if test -d (brew --prefix)"/share/fish/completions"
    set -gx fish_complete_path $fish_complete_path (brew --prefix)/share/fish/completions
end

if test -d (brew --prefix)"/share/fish/vendor_completions.d"
    set -gx fish_complete_path $fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Shell-Completion

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API