zsh - 使用 autocd 完成第一个选项卡

1 zsh tab-completion zsh-completion completion

我目前正在从 csh 切换到 zsh,我正在编写一个 .zshrc 试图获取我在这个新 shell 中习惯的所有选项。

我使用 autocd (进入一个目录,只需输入其名称(无需 cd 命令),我想知道我的第一个是否可能建议当前目录中存在的所有文件(就像它在 csh 中工作一样)。

我非常习惯这种方式,在输入我的命令之前,先按一下我可以打开的文件或我可以“autocd”进入的目录的概述,而无需在命令行中编写任何内容。

现在,当我第一次按下它时,它不会触发任何完成机制,但它只是写入一个实际的表格。

我还没有找到任何解决方案,如果有人有任何神奇的选择来获得这个结果,请随时启发我!

谢谢

lol*_*que 5

我找到了一个方法!
不需要 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对于保存选项卡可能有用,但也可以更改其他完成的行为。)