我正在尝试从 bash 切换到 zsh,但我发现 zsh 有一个主要的不方便之处。我已取消设置menucomplete
选项,绑定tab
到expand-or-complete-prefix
,并绑定alt-s
到menu-complete
。
但是,一旦我通过按 调用菜单完成alt-s
,随后点击tab
将继续循环浏览菜单完成条目,而不是像 bash 那样退出菜单完成并在最后显示的条目上执行完成。我想要这个的主要原因是,如果我想要cd
/ls
进入多个嵌套目录,我可以快速“进入”最后显示的目录。
我使用的是 zsh 版本 5.8,并且在我的 ~/.zshrc 中有以下内容:
setopt autolist
unsetopt automenu autoremoveslash listambiguous menucomplete
bindkey '^i' expand-or-complete-prefix # Bind tab
bindkey '^[s' menu-complete # Bind alt-s to menu-complete
Run Code Online (Sandbox Code Playgroud)
这是一个工作示例:
$ mkdir dir dir/a dir/b dir/b/d dir/c
$ ls dir/ <alt-s>
$ ls dir/a/ <alt-s>
$ ls dir/b/ <tab>
$ ls dir/c/ <tab>
$ …
Run Code Online (Sandbox Code Playgroud) zsh ×1