我有一个别名:alias gco='git checkout'
如何添加制表符补全,就像我键入了git checkout
一样?
对于我的alias g ='git'
,我使用compdef g ='git'
。
我一直在尝试使用compdef
,但我没有成功。
我有一个别名:alias gco='git checkout'
如何添加制表符补全,就像我键入了git checkout
一样?
对于我的alias g ='git'
,我使用compdef g ='git'
。
我一直在尝试使用compdef
,但我没有成功。
禁用此选项,您也很好...
# don't expand aliases _before_ completion has finished
# like: git comm-[tab]
# setopt complete_aliases
config.zsh
看起来像它。如果您想要为别名启用自动完成,则不应设置 complete_aliases 选项。 - Matt Dodge您无需进行任何操作,特别是compdef g='git'
,它应该可以在没有任何配置的情况下正常工作。只有在使用函数替代别名时才需要做些调整。
zsh -f <CR> autoload -Uz compinit <CR> compinit <CR> alias gco ='git checkout' <CR> gco <Tab>
,此时您将看到一个引用列表。另一个测试:alias g ='git' <CR> compdef g ='hg' <CR> g <Tab>
:compdef
被忽略了,我得到了 git 的自动补全而不是 Mercurial 的自动补全,并且需要 compdef git ='hg'
来覆盖这种行为(显然对于别名和 git
都需要)。 - ZyX对于我来说,为了使下面的代码片段工作,添加complete_aliases
和compdef
都是必要的:
alias docker-compose-dev='docker-compose -f docker-compose.yml -f docker-compose-dev.yml'
compdef docker-compose-dev='docker-compose'
setopt complete_aliases
compdef
或其他任何东西),它就能正常工作。你试过吗? - Anton Kovalenko