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

19

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

alias g='git'

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

    
задан Paweł Gościcki 19.09.2011 в 15:02
источник

7 ответов

18

Копирование и изменение из /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
    
ответ дан enzotib 19.09.2011 в 15:20
источник
13

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

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

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

completion: function '_git' not found

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

    
ответ дан lzap 30.06.2015 в 16:58
5

В ~/.bashrc :

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

Через Ссылка

    
ответ дан hnasarat 22.10.2014 в 17:48
1

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

  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
ответ дан Elijah Lynn 30.07.2013 в 15:56
0

Просто для полноты, я хотел бы добавить ответ, используя файл ~/.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 у меня есть только псевдонимы. Я пытался:

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

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

ответ дан kub1x 26.02.2016 в 14:00
-1

Посмотрите здесь: Ссылка

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

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

    
ответ дан scue 14.05.2015 в 09:10
-1

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

alias g='git'

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

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

    
ответ дан Cyker 24.12.2016 в 08:27