如何为zsh自动补全设置选项卡?

19

我想为zsh自动补全插件设置选项卡。这是配置文件的相关部分:

# Widgets that accept the entire suggestion
(( ! ${+ZSH_AUTOSUGGEST_ACCEPT_WIDGETS} )) && {
        typeset -ga ZSH_AUTOSUGGEST_ACCEPT_WIDGETS
        ZSH_AUTOSUGGEST_ACCEPT_WIDGETS=(
                forward-char
                end-of-line
                tab-char //my line
                vi-forward-char
                vi-end-of-line
                vi-add-eol
        )
}

字符名称的惯例是什么? 制表符命名规则是什么?

5个回答

24

对于那些对接受答案感到困惑的人,我通过以下方法使其正常工作:

bindkey '^I' autosuggest-accept

...其中'^I'表示制表符。


这对我有用。+1。 - yantaq
1
我猜它显示 ^I 是因为你正在使用 vim 并且使用了 :set list - Deqing
在 Mac M1 上,我需要执行 bindkey '^I' expand-or-complete - user3479780

15
你需要放置。
bindkey '       ' autosuggest-accept

将内容添加到您的.zshrc文件中。请注意,撇号之间的空格是一个制表符键击。 这与每个其他字符或字符组合类似。例如,如果您想要使用ctrl+space键组合来触发接受,则应追加

bindkey '^ ' autosuggest-accept

关于此事,请参考配置文件,这里有一个链接:https://github.com/zsh-users/zsh-autosuggestions#key-bindings


1
如何绑定选项卡? - ogbofjnr
2
我认为你多了一个空格或其他什么,我已经复制粘贴了,但它没有起作用。 最好的方法是直接输入 bindkey '' autosuggest-accept,然后将光标放在引号之间,按下 tab 键。 - Matteo
请注意,现代编辑器通常设置将“制表符”键扩展为空格,这会防止此方法起作用。 - jaskij

11

完整单词对我有效。谢谢! - HAltos
1
这太棒了。在 Mac 上运行,并且正是使用 zsh-autocomplete 和 zsh-autosuggestions 的完美组合。 - inostia

6

你的 ~/.zshrc 中似乎按预期工作:

bindkey '\t' autosuggest-accept

如果你想了解更多,可以点击这里


这是唯一对我有效的解决方案。在Ubuntu 22LTS,Gnome和VSCode上。 - Rafael Marino

2

我知道这有点老了,但是我还是留在这里给那些以后尝试使用的人。

我正在使用的是

bindkey '^I^I' autosuggest-accept

如果我连续按两次 Tab 键,它会完成命令。如果我只按一次 Tab 键并离开,我可以使用 shell 的建议并循环浏览它们。

1
这是最好的答案。谢谢。 - Zayar Tun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接