我发现 zsh 的Tab完成结果列表非常有用,但是我想稍微调整一下它们的行为:
它们应该在我Tab第一次出现时出现,然后随着每个新字母的添加而动态更新。默认行为是建议仅在您Tab再次评估时重新评估,我想保存此重复按键。(更新:但只列出可能的补全,即使只剩下一个选项,它也不应该自动修改我的实际提示行。)
有没有办法实现这种行为?
可能提供您想要的解决方案的一种方法是incremental-complete-word
:
zle -N incremental-complete-word
bindkey '^Xi' incremental-complete-word
Run Code Online (Sandbox Code Playgroud)
这会加载该函数并将其绑定到Ctrl- X i。现在你可以尝试一下:
> k^Xi
incremental (complete): -no prefix-
Run Code Online (Sandbox Code Playgroud)
k
在此示例中,先键入字母,然后键入 Control-X i。
> kil
incremental (complete): kill
Run Code Online (Sandbox Code Playgroud)
我输入后il
,现在有一种可能的补全 ( kill
)。人们可以接受这一点并按回车键。
> kill^D
incremental (complete): -no prefix-
- external command -
kill killall killall5
Run Code Online (Sandbox Code Playgroud)
通过输入Ctrl- Dzsh 会显示可能的完成情况。
从zshcontrib(1)
:
incremental-complete-word
这允许增量完成一个单词。启动此命令后,您键入的每个字符后都会显示补全选项列表,您可以使用^H或删除它DEL。按回车键接受到目前为止的完成并返回到正常编辑(即,命令行不会立即执行)。您可以点击TAB以正常完成、 ^G 中止回到开始时的状态以及^D列出匹配项。
归档时间: |
|
查看次数: |
1703 次 |
最近记录: |