Завершение Bash для Git на Mac OS X Monterey

Уже несколько лет у меня есть рабочий рецепт включения автозавершения bash для git на моем Mac. Недавно он сломался из-за изменения упаковки CommandLineTools в Xcode. Итак, давайте рассмотрим, как это все работает, и как мы можем заставить это работать (снова).

Краткая информация о файлах bashrc

Файлы bashrc — это скрипты конфигурации среды, которые Bash включает при запуске. Вы можете использовать их для настройки работы с CLI.

Однако один файл ~/.bashrc может быстро стать неуправляемым. Поэтому, как и в любой другой части программного обеспечения, мы хотели бы шаблонизировать вещи и разбить проблему на более мелкие части.

Моя репозитория dotfiles на GitHub включает коллекцию файлов шаблонов .bashrc, которые я использую ежедневно:

jamesonwilliams / dotfiles

Файлы Джеймсона . (dot) для Linux

dotfiles

Файлы Джеймсона . (dot) для командной строки UNIX и Linux.

Одна из целей этих dot-файлов — прийти к схожему опыту в различных системах UNIX/Linux, с которыми мы сталкиваемся в реальной жизни:

  • Ubuntu
  • Debian
  • RHEL
  • Amazon Linux
  • Mac OS X
  • и т.д.

Установка

Чтобы установить файлы dot для конкретного пользователя в вашей системе, сделайте следующее:

git clone https://github.com/jamesonwilliams/dotfiles.git
./dotfiles/install.sh
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Посмотреть на GitHub

В основном, они работают следующим образом.

  1. Мой ~/.bashrc сам по себе не содержит никакой реальной логики, он просто содержит кучу файлов шаблонов, которые обрабатывают определенные подпроблемы.
  2. Один из этих файлов шаблонов называется ~/.bashrc.darwin, и он включает некоторые исправления для специфических причуд Mac. То, что обычно полезно в Linux или других версиях UNIX, в этот файл не входит.

Как это работало в Mac OS X

Одна из особенностей использования OS X заключается в том, что завершение вкладок в git не работает из коробки. Поэтому в течение многих лет у меня было немного настроек для этого случая:

# In ~/.bashrc.darwin

cli_tools='/Library/Developer/CommandLineTools'
git_core="$cli_tools/usr/share/git-core"
git_completion="$git_core/git-completion.bash"
[ -x "$(which git)" ] && 
    [ -f "$git_completion" ] && 
    source "$git_completion"
Войти в полноэкранный режим Выход из полноэкранного режима

Если git установлен и файл git completion может быть найден, мы вводим его в среду.

Как это работает сейчас

Недавно этот файл git-completion.bash исчез из установки CommandLineTools, и поэтому завершение вкладки перестало работать.

Оказывается, теперь он живет здесь:

/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
Войти в полноэкранный режим Выйти из полноэкранного режима

Так что все, что нужно, это обновить путь к git_core в ~/.bashrc.darwin:

# In ~/.bashrc.darwin

xcode_dev_dir='/Applications/Xcode.app/Contents/Developer'
git_core="$xcode_dev_dir/usr/share/git-core"
git_completion="$git_core/git-completion.bash"
[ -x "$(which git)" ] && 
    [ -f "$git_completion" ] && 
    source "$git_completion"
Вход в полноэкранный режим Выход из полноэкранного режима

Сохраните файл, перезагрузите ноутбук и пользуйтесь. Счастливого git-инга.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *