1

При попытке завершить, например, git difftool --cached, ZSH должен завершиться напрямую, но вместо этого, если у меня есть много коротких вариантов выбора, я делаю что-то не так? Моя текущая конфигурация выглядит следующим образом: https://github.com/sblask/dotfiles/blob/master/zshrc.dotfile

Пример:

$ git difftool --cac<TAB>
-0            -- omit diff output for unmerged entries
-1            -- diff against "base" version
-2            -- diff against "our branch" version
-3            -- diff against "their branch" version
-b            -- ignore changes in amount of white space
-B            -- break complete rewrite changes into pairs of given size
-C            -- detect copies as well as renames with given scope
--cached      -- show diff between index and named commit/
...

1 ответ1

1

Если вы сравните исходное дерево zsh-5.0.5 с деревом zsh-5.0.7, в отношении завершения git произойдут некоторые изменения:

$ git diff --stat zsh-5.0.5..zsh-5.0.7 | grep _git
 Completion/Unix/Command/_git                      |  353 +++--
 Functions/VCS_Info/Backends/VCS_INFO_get_data_git |  158 ++-

В заметках о выпуске упоминаются только самые важные изменения, но не каждое изменение кода. Вот сообщения коммита, в которых упоминается git (я не разбирался, какие из них актуальны для вашей проблемы ...):

33180: _git: add missing --3way option
33177: _git: fix typo in git-apply
33178: _git: updates for Git 2.1.0
33176: _git: Add missing --list to git-tag
33179: _git: updates for Git 2.0.0
33184: vcs_info git: consider patches for rebase
33188: vcs_info git: set rrn before using it
33150: completion git: fix send-email --confirm values
33145: vcs_info git: fix applied-string name
33147: vcs_info git: detect revert or cherry-pick with multiple commits
33151: completion git: support aliases when \n exist
33047: use git to simplify massively source distribution file selection
32662: vcs_info git: Fix stagedstr for empty repos
32597: vcs_info git: Describe detached heads symbolically.
32502: fix typo in argument list for git completio
32398: _git: completion updates up to latest git v1.9.0
32397: _git: fix __git_submodules to only use the actual name of the submodule
32395: _git: diff: refactor and fix wrong completions
32396: _git: fix __git_committish_range_{first,last} and __git_is_committish_range

Я могу воспроизвести поведение, которое вы описываете с zsh-5.0.5, но с zsh-5.0.7 git difftool --cac<TAB> завершает работу, как и ожидалось, для git difftool --cached .

Короче говоря, обновите вашу установку до zsh-5.0.7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .