Я просто следовал инструкциям @ этого вопроса , чтобы получить git autocompletion в терминале. Вот шаги, которые я предпринял:

  • port install bash-completion
  • добавленной

     if [ -f /opt/local/etc/bash_completion ]; then
       . /opt/local/etc/bash_completion
       echo "bash completion loaded"
     fi
    

    на мой ~ /.profile

  • port update git-core +svn +bash_completion +doc

Затем я перезапустил терминал, он показал мне "завершение загрузки bash", так что, очевидно, файл существует, но завершение табуляции все еще работает только с файлами. Ничего волшебного не происходит после того, как вы наберете git и нажмете Tab.

Я изучил /opt/local/etc/bash_completion.d/ и он дает мне 149 файлов, включая git , java , man , port . Я попытался набрать эти команды и затем нажать на вкладку, но там тоже ничего не получалось.

У кого-нибудь есть идеи, что я сделал не так? Возможно я перепутал переменную окружения или что-то. Может ли кто-нибудь, у кого есть установка bash-complete, сказать мне команду, где она должна работать, например, port up а затем нажать tab -> port upgrade . Спасибо ;-)


Редактировать:

Нашел еще одну ссылку, описывающую мой подход: как заставить git-creation.bash работать на Mac OS X?

4 ответа4

2

MacPorts уже некоторое время отключают и завершают работу над bash. Я предлагаю попробовать Fink или HomeBrew.

1

Я думаю, что самый простой способ - перейти на Zsh. Есть некоторая конфигурация, которая должна быть сделана, но это все.

Я добавил это в мой файл ~/.zshenv


#******************************************************************************************
# From http://zshwiki.org/home/examples/compquickstart
zmodload zsh/complist
autoload -U compinit && compinit

_force_rehash() {
 (( CURRENT == 1 )) && rehash
 return 1   # Because we didn't really complete anything
}
zstyle ':completion:::::' completer _force_rehash _complete _approximate
zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX + $#SUFFIX) / 3 )) )'
zstyle ':completion:*:descriptions' format "- %d -"
zstyle ':completion:*:corrections' format "- %d - (errors %e})"
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' group-name ''
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*:manuals.(^1*)' insert-sections true
zstyle ':completion:*' menu select
zstyle ':completion:*' verbose yes
0

Мне удалось получить завершение Bash и запустить через Fink.

fink install bash-completion

После выбора Fink для Bash работает табуляция. Это включает в себя команды Git, как вы описали выше.

0

У меня в tmux это работало, а в обычном iTerm2 нет. Решением была установка Команды в /opt/local/bin/bash -l для моего используемого профиля iTerm2. Я нашел решение по адресу https://trac.macports.org/wiki/howto/bash-completion

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