ZSH 选项卡完成:仅完整文件而不是二进制文件

bol*_*van 8 vim zsh autocomplete

是否可以制作自定义 zsh 完成文件,因此在点击文件名选项卡时它可以避免完成二进制文件?例如,我有 2 个文件,myprogram.c 和 myprogram,二进制文件,是否有可能当我执行 vim myprog(tab) 时,它会自动将其完成为 myprogram.c,而不是 myprogram?提前致谢!

Gil*_*il' 6

您可以通过调整忽略完井一些模式完成的风格zstyle内置zsh 指南中示例

例如,要*.o在完成文件以使用 vim 进行编辑时忽略文件,您可以将其放入.zshrc

zstyle ':completion:*:*:vim:*:*files' ignored-patterns '*.o'
Run Code Online (Sandbox Code Playgroud)

这不会以有用的方式排除可执行文件。您可以排除*~*.*,或者更准确地说(|*/)[^/.]##,这会排除每个不包含 的文件名.,包括脚本,甚至更糟的目录。据我所知,完成忽略机制无法检查文件的存在或类型,它只匹配文本模式。