Zsh 在中间路径段上重新启动完成

Zsh 在中间路径段上重新启动完成

我经常想通过完成在 zsh 中快速构建一条路径。问题是,当我完成一个片段时,似乎没有好的方法来开始完成下一个片段。例如,假设我有以下结构:

|- apple
|- apricot
|--- banana
|--- blueberry

我想完成路径/apple/blueberry

$ cd /ap  # <TAB>
$ cd /apple/  # <TAB>
$ cd /apricot/  # <TAB>
$ cd /apple/  # <TAB>
$ cd /apricot/ # ...

问题是,当我尝试完成 on 时/apple/,它会循环到下一场比赛,而不是开始“新鲜”完成,就像我这样做时会发生的那样:

$ cd /apple/ # <TAB>
$ cd /apple/banana # <TAB>
$ cd /apple/blueberry

我知道我可以输入第一个字符“b”并从此开始一个新的完成,但我不想这样做——我想列出/循环所有子文件/目录。成功完成中间任务后,如何开始新的完成任务?

答案1

输入斜线。当 zsh 完成目录名称时,它会添加一个“暂定”尾随/.默认情况下,暂定字符以粗体显示。如果您随后键入斜杠或空格,则该暂定斜杠将被删除。因此,如果您在完成目录名称后立即输入斜杠,则会将暂定斜杠转换为“正常”斜杠。由于您已经输入了一些内容,因此目录的完成/apple已经结束,因此Tab将完成 中的条目/apple/

相关内容