1 zsh tab-completion zsh-completion completion
我目前正在从 csh 切换到 zsh,我正在编写一个 .zshrc 试图获取我在这个新 shell 中习惯的所有选项。
我使用 autocd (进入一个目录,只需输入其名称(无需 cd 命令),我想知道我的第一个是否可能建议当前目录中存在的所有文件(就像它在 csh 中工作一样)。
我非常习惯这种方式,在输入我的命令之前,先按一下我可以打开的文件或我可以“autocd”进入的目录的概述,而无需在命令行中编写任何内容。
现在,当我第一次按下它时,它不会触发任何完成机制,但它只是写入一个实际的表格。
我还没有找到任何解决方案,如果有人有任何神奇的选择来获得这个结果,请随时启发我!
谢谢
我找到了一个方法!
不需要 autocd,尽管 zsh 中存在此选项
要放入您的~/.zshrc:
first-tab() {
if [[ $#BUFFER == 0 ]]; then
BUFFER="cd "
CURSOR=3
zle list-choices
else
zle expand-or-complete
fi
}
zle -N first-tab
bindkey '^I' first-tab
Run Code Online (Sandbox Code Playgroud)
感谢这个问题:zsh tab finish onempty line
因此,按一次 Tab 键,您将获得“cd”和现有目录。
检查man zshoptions其他可能有用的现有选项
(setopt menucomplete对于保存选项卡可能有用,但也可以更改其他完成的行为。)