编写补全函数的实用指南
1. 文件匹配与补全
在进行文件补全时,我们可以利用 (-.) 通配符限定符来确保不匹配目录。有时候,通配的文件可能会包含目录。若希望先补全所有非目录文件,再补全目录,可以使用如下代码:
zstyle ':completion:*' file-patterns \
'%p(^-/):globbed-files' '*(-/):directories' '*:all-files'
此代码会为补全函数指定的任何模式添加通配符限定符,从而将匹配的文件限制为非目录文件。 all-files 回退机制很有用,因为有时文件可能没有正确的后缀。若前面的标签没有产生匹配结果,就会使用回退机制,也可以通过 _next_tags 小部件来使用它。例如:
% ls
attachment initrd.tgz picture.png zsh-4.0.9.tar.gz
% zcat <tab>
initrd.tgz zsh-4.0.9.tar.gz
% zcat <ctrl-x><n>
attachment initrd.tgz picture.png zsh-4.0.9.tar.gz
2. 多次尝试补全器
标签也可用于补全器列表,这允许使用不同的样式多次尝试同一个补全器。例如,
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



