Если я сделаю это:
alias g='git'
Я теряю все правила завершения (т.е. ветви и пульты больше не завершаются автоматически, например, когда я нажимаю TAB после ввода g push o
).
command-line
bash
git
auto-completion
Павел Гольчицкий
источник
источник
g=git
в прошлом месяце я использовал псевдоним 756 раз, то есть я сохранил, нажав клавиши «g» и «i» всего 1512 раз. Это, в сочетании с моими псевдонимами, может сэкономить мне десятки тысяч нажатий клавиш в месяц.Ответы:
Копируя и изменяя своевременно
/etc/bash_completion.d/git
, добавьте следующие строки в ваш~/.bashrc
:источник
source /usr/share/bash-completion/completions/git
к своему .bashrc.bashrc
код здесь работает, но этот ответ определенно устарел./etc/bash_completion.d/git
не существует 14.04. Смотрите ответ lzap ниже.Последние дополнения bash-upstream перенесены и переименованы. Это снег:
Используйте это в последних версиях Ubuntu (например, 14.04, также Fedora 22+), когда вы встречаете:
во время завершения.
источник
__git_complete gc _git_checkout
(или подобное), чтобы настроить дополнения для более конкретных псевдонимов. Выполните поиск,/usr/.../git
как указано выше, чтобы найти правильное имя.gc
=>git checkout
) , в отличие от наложения спектровc
вcheckout
пределахgit
, и говоритьgit c
. Поправьте меня если я ошибаюсь.В
~/.bashrc
:Через http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04
источник
Сначала посмотрите исходную команду завершения. Пример:
Теперь добавьте их в свой скрипт запуска (например, ~ / .bashrc):
_completion_loader
Линия может не потребоваться. Но в некоторых ситуациях функция завершения загружается динамически только после ввода команды иTAB
первого нажатия . Так что, если вы не использовали исходную команду и попробовали псевдоним +TAB
, вы можете получить сообщение об ошибке типа «bash: завершение: функция не найдена».источник
Обновленный способ сделать это (полный не будет работать для меня):
cd
- переключиться на свой домашний каталогwget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
source ~/git-completion.bash
в ваш файл .bashrc (если у вас нет этого файла, сделайте его в своей домашней папке, bash будет искать его автоматически)alias g='git'
в ваш файл .bashrc.source ~/.bashrc
источник
__git_complete g _git
Для полноты картины я хотел бы добавить ответ, используя
~/.bash-completion
файл, который получен в конце сценария завершения bash:Тогда по моему у
~/.bashrc
меня есть только псевдонимы. Я пытался:~/.bashrc
с помощью bash-дополнения (держите вещи там, где они есть) ✓К сожалению,
_xfunc
источники git-завершение все равно. Я обновлю этот ответ, как только выясню, как это сделать правильно (я также спросил здесь на блокноте ).источник
Посмотрите здесь: https://gist.github.com/scue/576310b7c6b7714aad05
Наслаждайтесь! (^ О ^) /
источник
Вы можете просто определить псевдонимы как обычно:
Затем установите полный псевдоним, чтобы сделать псевдоним завершения bash.
источник