Как псевдоним «git» на «g», чтобы правила заполнения баха сохранялись?

Если я это сделаю:

alias g='git' 

Я теряю все правила завершения (т. Е. Ветви и пульты больше не выполняются автоматически, когда я нажимаю TAB после ввода текста, например g push o ).

Related of "Как псевдоним «git» на «g», чтобы правила заполнения баха сохранялись?"

/etc/bash_completion.d/git и изменив время от /etc/bash_completion.d/git , добавьте следующие строки в ~/.bashrc :

 complete -o bashdefault -o default -o nospace -F _git g 2>/dev/null \ || complete -o default -o nospace -F _git g 

Последнее обновление bash-up вверх перемещалось и немного переименовывалось. Это снег:

 source /usr/share/bash-completion/completions/git __git_complete g __git_main 

Используйте это в последних версиях Ubuntu (например, 14.04, также Fedora 22+), когда вы сталкиваетесь:

 completion: function `_git' not found 

во время завершения.

В ~/.bashrc :

 alias g='git' source /usr/share/bash-completion/completions/git complete -o default -o nospace -F _git g 

Через http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04

Обновленный способ сделать это (полный не будет работать для меня):

  1. cd – переключиться на домашний каталог
  2. wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
  3. Добавьте source ~/git-completion.bash в ваш .bashrc-файл (если у вас нет этого файла, сделайте его в своей домашней папке, bash будет искать его автоматически)
  4. Добавьте alias g='git' в ваш .bashrc-файл.
  5. Запустите новый сеанс или отправьте исходные данные с помощью source ~/.bashrc

Только для полноты, я хотел бы добавить ответ, используя файл ~/.bash-completion , который получает ~/.bash-completion в конце сценария завершения bash:

 _xfunc git __git_complete g __git_main _xfunc git __git_complete gl _git_log _xfunc git __git_complete gd _git_diff _xfunc git __git_complete gb _git_branch 

Тогда в моем ~/.bashrc меня есть только псевдонимы. Я пытался:

  • избегайте использования my ~/.bashrc заполнения bash (сохраняйте материал, где он принадлежит) ✓
  • избегайте использования всего git-завершения в моей оболочке ☹

В любом случае, _xfunc источник git-завершения в любом случае. Я обновлю этот ответ, когда выясню, как это сделать правильно (я также спросил здесь об обеденном столе).

Посмотрите здесь: https://gist.github.com/scue/576310b7c6b7714aad05

 wget https://gist.github.com/scue/576310b7c6b7714aad05/raw/459d46761c231f5c373c1cf496920b01bb6669d2/.bash_aliases.git -O ~/.bash_aliases.git echo "test -e ~/.bash_aliases.git && source ~/.bash_aliases.git" >> ~/.bashrc 

Наслаждайтесь! (^ О ^) /

Это правильный способ определения псевдонима:

 alias g='git' 

И вы не теряете никаких правил завершения, потому что у вас их никогда не было. Вам нужно определить правила завершения для псевдонимов bash.

Насколько я знаю, самый простой способ сделать это – установить полный псевдоним , который обеспечивает программный способ завершения псевдонимов.