ZSH:按名称标记子目录中的完整文件

时间:2016-07-08 18:00:38

标签: zsh zsh-completion

我希望能够在zsh,hit选项卡中键入文件名,并在当前目录的任何子目录中查看与该名称匹配的文件列表。然后我可以浏览这些结果并按Enter键选择某个文件,就像内置的zsh选项卡完成功能一样。

示例所需功能:

$ emacs app.css [tab]
*www/css/app.css*    tmp/static/app.css
[enter]
$ emacs www/css/app.css

如果这不是一个功能,我假设我可以编写一个自定义完成脚本来实现它。

1 个答案:

答案 0 :(得分:1)

您可以通过使用**模式(匹配多个目录)并将控制函数_expand添加到completer样式(如果不是这种情况)来实现类似的功能。

至少,您需要进行以下设置:

autoload -U compinit
zstyle ':completion:*' completer _expand
compinit

然后你可以用

获得所需的列表
% emacs **/app.css[TAB]

它甚至允许选项一次打开所有匹配的文件。