我最近从 bash 转换为 zsh(我正在使用“oh my zsh”),但有一件事让我很恼火:
当我点击 tab 键时,第一个自动补全会自动填写,您需要通过反复点击 tab 来循环完成。
这与 bash 不同,在 bash 中,您只会看到一个完成列表。如果所有补全具有相同的前缀,则填写此前缀。您可以通过继续键入来选择您想要的。
我发现后者更可取,因为它比通过反复点击选项卡来选择完成更快。
有没有办法让 zsh 完成在这方面更像 bash?
我最近从 bash 转换为 zsh(我正在使用“oh my zsh”),但有一件事让我很恼火:
当我点击 tab 键时,第一个自动补全会自动填写,您需要通过反复点击 tab 来循环完成。
这与 bash 不同,在 bash 中,您只会看到一个完成列表。如果所有补全具有相同的前缀,则填写此前缀。您可以通过继续键入来选择您想要的。
我发现后者更可取,因为它比通过反复点击选项卡来选择完成更快。
有没有办法让 zsh 完成在这方面更像 bash?
你需要他们两个。如果您按 Tab 的次数足够多,您将获得完成列表,但它永远不会在您迄今为止输入的内容中添加任何字符。
我不认为这是默认行为,但您可以使用以下方法将其关闭:
以不同方式影响此行为的其他设置包括:
autolist
、automenu
、bashautolist
、listambiguous
。有关详细信息,请参阅“完成”部分man zshoptions
。您可以将此命令添加到您的~/.zshrc
文件中。您可以通过执行以下操作以交互方式配置许多其他内容:
并按照提示和菜单进行操作。
在 Bash 中,这种行为是通过绑定Tab到
complete
或menu-complete
in来控制的~/.inputrc
:或从 shell 提示符或在
~/.bashrc
: