При использовании git OSX, после того, как я git commit <tab>
изменю файл, который я могу просто сделать , это автоматически завершит имя файла до того, которое было изменено. Однако, если я устанавливаю более новую версию git из homebrew и использую ее, эта функция больше не работает (то есть я нажимаю <tab>
и просто «спрашивает», с каким файлом я хочу это сделать, даже включая те, которые не имеют изменений) ).
Кто-нибудь может пролить свет на то, почему и как это решить? Я бы предпочел использовать мерзавец, потому что он более современный.
Моя оболочка - zsh, и она не устанавливается bash-completion
и не zsh-completions
работает (даже после следования инструкциям пост-установки homebrew).
Также после установки git с homebrew написано
Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions
Так я не могу использовать один из них?
источник
zsh
иgit
вы используете?git
дополнения (например,git co<TAB>
==>git commit
)?zsh-completions
он не был доволен Mac Git, хотя раньше он работал нормально (возможно, обновлен вслепую до 0.17.x).Ответы:
Вы ищете:
Как гласит комментарий Warpc, вам нужно добавить следующее,
~/.bash_profile
чтобы заставить homebrew работать над завершением bash:Вышеупомянутое упомянуто в предостережениях при установке формулы завершения bash.
Примечание: если вы используете Bash v4 или новее (через
brew install bash
), то вы захотите использоватьbrew install bash-completion@2
, чтобы включить завершение вкладки, добавьте следующее,~/.bash_profile
как описано в предостережениях:Дополнительный экспорт необходим для git, docker, youtube-dl и других дополнений, которые могут быть включены в
$(brew --prefix)/etc/bash_completion.d/
каталог.источник
brew install git zsh-completions
? Кроме того, после установки git с homebrew написаноBash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions
, не могу ли я использовать один из них?bash-completion
ниzsh-completions
работа (даже после следования инструкциям homebrew после установки).Это завершение работы с git tab на OSX без перезагрузки терминала:
источник
&&
. Любой bash-скрипт может быть однострочным.brew install
метод. Просто потому что это работает.Если кто-то сделает мою глупую ошибку, попробуйте
brew install git
. Я использовал то,git
что идет с XCode, и не понял, что я никогда не устанавливал Git Homebrew для получения автозаполнения.источник
по какой-то причине я пропустил файл,
$(brew --prefix)/etc/bash_completion
поэтому правильный ответ @Graham Perks мне не помогЭто закончилось тем, что исправление в моем случае было:
источник
Я решил проблему, выяснив, что
$(brew --prefix)/etc/bash_completion
вернулосьPermission denied
при исполнении. Итак, после простого:Теперь все работает нормально. Мне интересно, почему Homebrew не делает
bash_completion
файл исполняемым при установке.источник
bash_completion
подразумевается какsource
'd', поэтому определения находятся в вашей оболочке; выполнение не будет иметь никакого эффекта.Нашел рабочее решение. Это очень недавно (созданный 16 часов назад, и совершенный 2 часа назад), и это прибывает непосредственно из доморощенного .
brew install git --without-completions
Только что попробовал, и это наконец работает как задумано.
источник
git
без завершения может улучшить ситуацию, когда завершение не работает. Я считаю, что ответ Грэма Перкса stackoverflow.com/a/14970926/1199564 должен быть помечен как правильный ответ.git --without-completions
и получитьbash-completion.bash
файл,.bash_profile
который, скорее всего, перезаписан в соответствии со стандартной процедурой.brew install git
все исправлено (нет необходимости в --without-завершении). Я думаю, что это также правильный ответ.У меня была такая же проблема, и даже нашел этот пост сегодня утром. Я исправил проблему, обновив brew,
brew update
а затем переустановив gitbrew reinstall git
.Затем меня уведомили о другом файле, который блокирует процесс создания ссылок на доморощенный напиток, в моем случае это было так
/usr/local/share/zsh/site-functions/git-completion.bash
. Удаление файла и запускbrew link git
решили проблему. Предположение, что это просто плохая версия рецепта, на которую мы наткнулись.источник
git --version
brew reinstall git
а такжеbrew reinstall bash-completion
заставить его снова работать.Если у вас
$BASH_VERSION
<4.1, например,3.2.57(1)-release
тогда продолжайте:Однако, если вам нужна
brew install bash
версия,4.4.12(1)-release
вы можете использовать лучшие и более полные дополнения в:Обратите внимание, что некоторые пакеты (brew, docker, tmux) по-прежнему
$(brew --prefix)/etc/bash_completion.d/
содержат некоторые дополнения, поэтому вы можете добавить:Наконец, вы должны иметь возможность добавить скрипт завершения git, если по какой-то причине способ установки git не добавил его ни к одному из них:
Вы можете получить и добавить его выше.
источник
Шаг 1: Загрузите скрипт автозавершения:
Шаг 2: Обновите .bash_profile и .bashrc
Через https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
Если выше не работает, попробуйте https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
источник
Для меня пришлось поставить
в
.bashrc
(не .bash_profile), чтобы заставить это работать.«.bash_profile выполняется для оболочек входа в систему, в то время как .bashrc выполняется для интерактивных оболочек без входа в систему» - В чем разница между .bash_profile и .bashrc? Мне кажется, что MacOS Sierra не работает только
.bash_profile
при открытии нового окна терминала.bashrc
.Я бы не поместил его в _bash_profile, потому что тогда мне пришлось бы перезагрузиться / выйти из системы, чтобы обновления вступили в силу.
источник
Это сработало для меня в Мохаве (OSX 10.14.1):
Затем добавьте следующую строку в ваш ~ / .bash_profile:
источник
В 2019 году, используя Bash v5, вам не нужно явно исходить из сценария завершения git bash в вашем
.bash_profile
или.bashrc
.bashrc
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
) и сохраните его/usr/local/etc/bash_completion.d/
какgit
Это оно! Bash автоматически подберет файл завершения git и включит завершение.
Примечание: я рекомендую внести все эти изменения, так
.bashrc
как это гарантирует, что при переходе в интерактивную оболочку (т.е. изpipenv shell
), завершения будут загружаться правильно, так как bash будет источником,.bashrc
а НЕ -.bash_profile
.источник
Это может быть связано с использованием libedit вместо readline в Lion.
Попробуйте установить readline перед git.
источник
Для тех, у кого уже есть brew-комплектация. У меня не был установлен скрипт завершения git, и я не смог найти для этого ни одного касания.
Поэтому я добавил это вручную:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
Обратите внимание, что вы должны переименовать файл и удалить расширение для его работы.
Если у вас нет завершения или git установлен, установите его в принятом ответе.
brew install git bash-completion
источник
Если вы использовали homebrew для установки git, то, вероятно, нет необходимости устанавливать что-либо для поддержки завершения git. Файл "git-creation.bash" находится где-то (мой был здесь: /usr/local/git/contrib/completion/git-completion.bash)
Все, что вам нужно сделать, это найти файл: sudo find / -type f -name "git-extension.bash"
Затем укажите его путь в вашем .bash_profile. Например, мне нужно было добавить эту строку в мой ~ / .bash_profile:
Не забудьте указать исходный файл ~ / .bash_profile или заново открыть свой терминал;)
от: how-enable-git-tab-complete-bash-mac-os-x
источник
Я знаю, что это старый пост, но вам не нужно устанавливать какие-либо дополнительные пакеты.
Homebrew сообщает вам, что есть каталог со всем необходимым.
Вы можете просто добавить следующую строку к себе,
.bash_profile
если вы используете Bash:источник
Включить автоматическое завершение команд GIT в MAC-OS Mojave 10.14 Я разработчик и все время использую GIT из командной строки. Когда я рассматривал перспективы развития, я обычно выполнял много команд, используя командную строку для операций GIT. Большую часть времени очень раздражает, что MAC OS не имеет автоматической поддержки завершения команды, которую я частично поддерживаю. а также подсказки команд, что означает, какие команды доступны для набираемых символов. Поэтому очень сложно набрать очень длинную команду и, в основном, повторяющуюся задачу, поскольку опечатка идет не так. :(
Завершение вкладки, безусловно, будет быстрее и проще. К сожалению, установка git по умолчанию на некоторых компьютерах Mac не включает завершение табуляции.
Так что я искал решение для этой проблемы, и в веб-поиске было найдено несколько решений, таких как StackOverflow, GitHub, а также из среды. К сожалению, эти решения не сработали для меня и были разочарованы тем, что пробовали разные решения много раз.
Я глубоко искал и пробовал разные решения, и, к счастью, это легко исправить. Ниже приведены шаги, которые я собрал из нескольких постов, и, наконец, все заработало, как и ожидалось. Поэтому я надеюсь поделиться с другими, кто имеет эту проблему, как я.
Если вы зайдете в веб-поиск и найдете множество решений, в которых упоминается bash-файл git complete. Даже руководство GitHub также. Но я предлагаю вам сначала проверить, есть ли файл git-creation.bash на вашем компьютере MAC с git-core или что-то еще, что пришло после установки. Вы можете использовать приведенную ниже команду.
Вы получите ниже результаты. (может иметь некоторую разницу в зависимости от содержания)
Я предлагаю вам выбрать, какой из установленных git-core
Если на вашем компьютере не существует сценария git-creation.bash, пожалуйста, найдите его из приведенного выше списка и сохраните его на локальном компьютере в новом файле с именем git-complete.bash в / usr / local / etc / bash_completion.d / каталог.
https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Если вы используете оболочку Bash, Git поставляется с хорошим сценарием автозаполнения, который вы можете включить. Загрузите его прямо из исходного кода Git по адресу
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Если на вашем компьютере есть сценарий git-creation.bash, но его нет в каталоге /usr/local/etc/bash_completion.d/, вы должны создать этот каталог и скопировать в него файл. Ниже команда сделает работу:
После завершения выше. Сценарий git-creation.bash должен существовать на вашем локальном компьютере в каталоге / usr / local / etc / bash_completion.d /.
Теперь вам нужно обновить свой профиль, используя команду ниже. Он загрузит ваш добавленный файл bash в контекст терминала.
Большой!!! ты сделал это Просто запустите окно терминала и попробуйте. Просто наберите "git sta", он покажет предложения, как показано ниже:
см. мой пост GitHub здесь:
https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave
Смотрите мой средний пост здесь:
https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14
источник