我是一个最近从bash转换到zsh(我使用“哦,我的zsh”),但有一件事情让我烦恼:
当我点击标签键时,第一个自动完成是自动填写的,你需要反复敲击标签来循环完成。
这不同于bash,在这里你只显示完成列表。 如果所有完成项都有相同的前缀,则填写该前缀。 你可以通过继续input来select你想要的。
我觉得后者比较好,因为键入的速度比通过反复敲击选项卡来select完成要快。
有没有什么办法使zsh完成在这方面更像bash?
setopt noautomenu setopt nomenucomplete
你需要他们两个。 如果你点击标签足够多的时间,你会得到完成列表,但它永远不会添加任何字符到你已经input到目前为止。
我不认为这是默认行为,但您可以通过使用以下closures它:
setopt +o menucomplete
以不同方式影响此行为的其他设置包括: autolist , automenu , bashautolist , listambiguous 。 有关详细信息,请参阅man zshoptions的“完成”部分。 您可以将此命令添加到~/.zshrc文件中。
你可以通过做交互configuration许多其他的事情:
autoload -U compinstall compinstall
并按照提示和菜单。
在Bash中,这个行为是通过绑定Tab来控制的,在~/.inputrc complete或者complete menu-complete :
"\Ci": complete # do list completion
或者从shell提示符或~/.bashrc :
bind '"\Ci": menu-complete' # do menu completion