【问题标题】:zsh git autocomplete: __git_find_on_cmdline errorzsh git 自动完成:__git_find_on_cmdline 错误
【发布时间】:2021-05-21 03:51:46
【问题描述】:

我正在尝试让 git autocomplete 与 zsh 一起工作,但遇到了一个奇怪的错误(即使自动完成似乎成功完成):

安装:

mkdir -p ~/.zsh
cd ~/.zsh
curl -o git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
curl -o _git https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh

添加到~/.zshrc:

zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.bash
fpath=(~/.zsh $fpath)

autoload -Uz compinit && compinit

我打开一个新的 shell 并运行 git checkout + "ty" + tab,我希望它能够使用 "typescript" 自动完成而没有错误:

raine[npm-check-updates]% gc ty__git_find_on_cmdline:[:7: unknown condition: -lt                                    ✓
__git_find_on_cmdline:[:7: unknown condition: -lt
__git_find_on_cmdline:[:7: unknown condition: -lt
pescript

它会自动完成“打字稿”,但中间有一个错误,就在我点击标签的地方。是什么原因造成的,我该如何让它消失?

【问题讨论】:

  • script ~/.zsh/git-completion.bash 在 zsh 中完成 Bash?不应该也是zsh补全吗?
  • bash 完成脚本并不总是与 zsh 兼容。有正在进行的工作来解决这个问题,但是当他们不工作时,这只是意味着有人错过了一些东西。你可以使用 bash 代替 zsh,或者使用 zsh 脚本,或者参与正在进行的工作,或者任何你喜欢的,在这里。

标签: git zsh


【解决方案1】:

Zsh comes with excellent Git completion out of the box。把你发布的所有东西都扔掉,除了这个:

autoload -Uz compinit && compinit

然后它会工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多