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

Я создаю сценарий оболочки, который делает то, что вам нужно, т.е. проверяет подключение к сети, а затем отключает обновления. Затем вызовите скрипт из cron.

23
задан 19 September 2011 в 18:02

62 ответа

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

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

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

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

0
ответ дан 2 August 2018 в 02:58

посмотри здесь: 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

заказать!(^о^)/

-1
ответ дан 2 August 2018 в 02:58

Сначала найдите исходную команду завершения. Пример:

$ complete | grep git complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git

Теперь добавьте их в свой сценарий запуска (например, ~ / .bashrc):

# copy the original statement, but replace the last command (git) with your alias (g) complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g # load dynamically loaded completion functions (may not be required) _completion_loader git

Возможно, строка _completion_loader не требуется. Но для некоторых ситуаций функция завершения загружается динамически только после ввода команды и нажатия TAB в первый раз. Поэтому, если вы не использовали исходную команду и попробуйте псевдоним + TAB, вы можете получить сообщение об ошибке «bash: completion: function not found».

1
ответ дан 2 August 2018 в 02:58

Последнее обновление bash-upstream перемещено и немного переименовано. Теперь это:

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

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

completion: function `_git' not found

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

14
ответ дан 2 August 2018 в 02:58
  • 1
    Похоже, это единственный правильный ответ. – pjvandehaar 3 November 2015 в 10:17
  • 2
    Используйте __git_complete gc _git_checkout (или аналогичных) для установки дополнений для более конкретных синонимов. Поиск /usr/.../git, как выше, чтобы найти правильное имя. – Max Wallace 6 November 2015 в 22:00
  • 3
    @MaxWallace - когда вы устанавливаете псевдонимы для определенных git-методов в .gitconfig (например, gc = checkout), нет необходимости явно настраивать их для завершения. – Piotr Aleksander Chmielowski 22 October 2016 в 10:43
  • 4
    @PiotrAleksanderChmielowski Спасибо! Но я не думаю, что это работает для псевдонимов bash верхнего уровня (например, gc = & gt; git checkout), в отличие от псевдонимов c - checkout в git, и говоря git c. Поправьте меня если я ошибаюсь. – Max Wallace 24 October 2016 в 15:33
  • 5
    @MaxWallace Да, вы правы, моя ошибка ;) – Piotr Aleksander Chmielowski 24 October 2016 в 18:39

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

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
1
ответ дан 4 August 2018 в 18:47
  • 1
    Вы пропустили ту часть, где они на самом деле добавил в комментарий вы связаны с: __git_complete g _git – pjvandehaar 3 November 2015 в 10:08

Вы можете просто определить псевдонимы, как обычно:

alias g='git'

Затем установите полный псевдоним, чтобы сделать альянс с подтверждением bash.

-1
ответ дан 4 August 2018 в 18:47

в ~/.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

6
ответ дан 4 August 2018 в 18:47

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

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

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

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

0
ответ дан 4 August 2018 в 18:47

Посмотрите здесь: 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

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

-1
ответ дан 4 August 2018 в 18:47

во-первых, искать оригинальные команду завершения. Пример:

$ complete | grep git complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git

теперь добавить их в скрипт запуска (например,~/.bashrc следующее):

# copy the original statement, but replace the last command (git) with your alias (g) complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g # load dynamically loaded completion functions (may not be required) _completion_loader git

в _completion_loader может не потребоваться. Но для некоторых ситуациях, функция завершения загружается только динамически после того, как вы введите команду и нажмите клавишу [F4] и в первый раз. Так что если Вы не использовали первоначально команды, и попробовать псевдоним + TAB, вы можете получить сообщение об ошибке вроде "баш: окончание: функция не найдена".

1
ответ дан 4 August 2018 в 18:47

Последнее обновление bash-upstream перемещено и немного переименовано. Теперь это:

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

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

completion: function `_git' not found

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

14
ответ дан 4 August 2018 в 18:47
  • 1
    Похоже, это единственный правильный ответ. – pjvandehaar 3 November 2015 в 10:17
  • 2
    Используйте __git_complete gc _git_checkout (или аналогичный) для настройки завершений для более конкретных псевдонимов. Найдите /usr/.../git, как указано выше, чтобы найти правильное имя. – Max Wallace 6 November 2015 в 22:00
  • 3
    @MaxWallace - когда вы устанавливаете псевдонимы для определенных git-методов в .gitconfig (например, gc = checkout), нет необходимости явно настраивать их для завершения. – Piotr Aleksander Chmielowski 22 October 2016 в 10:43
  • 4
    @PiotrAleksanderChmielowski Спасибо! Но я не думаю, что это работает для псевдонимов bash верхнего уровня (например, gc = & gt; git checkout), в отличие от псевдонимов c - checkout в git, и говоря git c. Поправьте меня если я ошибаюсь. – Max Wallace 24 October 2016 в 15:33
  • 5
    @MaxWallace Да, вы правы, моя ошибка ;) – Piotr Aleksander Chmielowski 24 October 2016 в 18:39

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

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
1
ответ дан 6 August 2018 в 03:11
  • 1
    Вы пропустили часть, в которой они фактически добавили завершение в комментарий, который вы связали с: __git_complete g _git – pjvandehaar 3 November 2015 в 10:08

Вы можете просто определить псевдонимы как обычно:

alias g='git'

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

-1
ответ дан 6 August 2018 в 03:11

В ~/.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

6
ответ дан 6 August 2018 в 03:11

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

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

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

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

0
ответ дан 6 August 2018 в 03:11

Посмотрите здесь: 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

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

-1
ответ дан 6 August 2018 в 03:11

Сначала найдите исходную команду завершения. Пример:

$ complete | grep git complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git

Теперь добавьте их в свой сценарий запуска (например, ~ / .bashrc):

# copy the original statement, but replace the last command (git) with your alias (g) complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g # load dynamically loaded completion functions (may not be required) _completion_loader git

Возможно, строка _completion_loader не требуется. Но для некоторых ситуаций функция завершения загружается динамически только после ввода команды и нажатия TAB в первый раз. Поэтому, если вы не использовали исходную команду и попробуйте псевдоним + TAB, вы можете получить сообщение об ошибке «bash: completion: function not found».

1
ответ дан 6 August 2018 в 03:11

Последнее обновление bash-upstream перемещено и немного переименовано. Теперь это:

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

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

completion: function `_git' not found

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

14
ответ дан 6 August 2018 в 03:11
  • 1
    Похоже, это единственный правильный ответ. – pjvandehaar 3 November 2015 в 10:17
  • 2
    Используйте __git_complete gc _git_checkout (или аналогичный) для настройки завершений для более конкретных псевдонимов. Найдите /usr/.../git, как указано выше, чтобы найти правильное имя. – Max Wallace 6 November 2015 в 22:00
  • 3
    @MaxWallace - когда вы устанавливаете псевдонимы для определенных git-методов в .gitconfig (например, gc = checkout), нет необходимости явно настраивать их для завершения. – Piotr Aleksander Chmielowski 22 October 2016 в 10:43
  • 4
    @PiotrAleksanderChmielowski Спасибо! Но я не думаю, что работает на топ-уровне баш псевдонимы (например, gc => git checkout) в отличие от наложения спектров [F3] для [F4] и в git, и сказал git c. Поправьте меня, если я ошибаюсь. – Max Wallace 24 October 2016 в 15:33
  • 5
    @MaxWallace Да, вы правы, моя ошибка;) – Piotr Aleksander Chmielowski 24 October 2016 в 18:39

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

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
1
ответ дан 7 August 2018 в 20:52
  • 1
    Вы пропустили часть, в которой они фактически добавили завершение в комментарий, который вы связали с: __git_complete g _git – pjvandehaar 3 November 2015 в 10:08

Вы можете просто определить псевдонимы, как обычно:

alias g='git'

Затем установите полный псевдоним, чтобы сделать альянс с подтверждением bash.

-1
ответ дан 7 August 2018 в 20:52

В ~/.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

6
ответ дан 7 August 2018 в 20:52

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

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

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

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

0
ответ дан 7 August 2018 в 20:52

посмотри здесь: 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

заказать!(^о^)/

-1
ответ дан 7 August 2018 в 20:52

Сначала найдите исходную команду завершения. Пример:

$ complete | grep git complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git

Теперь добавьте их в свой сценарий запуска (например, ~ / .bashrc):

# copy the original statement, but replace the last command (git) with your alias (g) complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g # load dynamically loaded completion functions (may not be required) _completion_loader git

Возможно, строка _completion_loader не требуется. Но для некоторых ситуаций функция завершения загружается динамически только после ввода команды и нажатия TAB в первый раз. Поэтому, если вы не использовали исходную команду и попробуйте псевдоним + TAB, вы можете получить сообщение об ошибке «bash: completion: function not found».

1
ответ дан 7 August 2018 в 20:52

Последнее обновление bash-upstream перемещено и немного переименовано. Теперь это:

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

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

completion: function `_git' not found

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

14
ответ дан 7 August 2018 в 20:52
  • 1
    Похоже, это единственный правильный ответ здесь. – pjvandehaar 3 November 2015 в 10:17
  • 2
    Используйте __git_complete gc _git_checkout (или аналогичных) для установки дополнений для более конкретных синонимов. Поиск /usr/.../git, как выше, чтобы найти правильное имя. – Max Wallace 6 November 2015 в 22:00
  • 3
    @MaxWallace - когда вы устанавливаете псевдонимы для определенных git-методов в .gitconfig (например, gc = checkout), нет необходимости явно настраивать их для завершения. – Piotr Aleksander Chmielowski 22 October 2016 в 10:43
  • 4
    @PiotrAleksanderChmielowski Спасибо! Но я не думаю, что это работает для псевдонимов bash верхнего уровня (например, gc = & gt; git checkout), в отличие от псевдонимов c - checkout в git, и говоря git c. Поправьте меня если я ошибаюсь. – Max Wallace 24 October 2016 в 15:33
  • 5
    @MaxWallace Да, вы правы, моя ошибка;) – Piotr Aleksander Chmielowski 24 October 2016 в 18:39

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

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
1
ответ дан 10 August 2018 в 09:14
  • 1
    Вы пропустили часть, в которой они фактически добавили завершение в комментарий, который вы связали с: __git_complete g _git – pjvandehaar 3 November 2015 в 10:08

Вы можете просто определить псевдонимы, как обычно:

alias g='git'

Затем установите полный псевдоним, чтобы сделать альянс с подтверждением bash.

-1
ответ дан 10 August 2018 в 09:14

В ~/.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

6
ответ дан 10 August 2018 в 09:14

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

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

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

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

0
ответ дан 10 August 2018 в 09:14

Посмотрите здесь: 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

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

-1
ответ дан 10 August 2018 в 09:14

Другие вопросы по тегам:

Похожие вопросы: