如何防止 vim 在 zsh 上打开具有指定扩展名的文件?
How do I prevent vim from opening files with specified extensions on zsh?
假设我在一个目录(使用 zsh)中包含以下三个文件:hello.c
、hello.o
和 hello.d
.
现在,如果我输入 vim he
并按 TAB,我想要 zsh,而不是给我 vim hello.
,给我 vim hello.c
忽略 hello.o
和 hello.d
.
我只希望它适用于 vim
,而不是其他命令 xxd
。有没有办法在 zsh 中实现这一点?
谢谢
尝试将此添加到 .zshrc
:
autoload -Uz compinit && compinit
zstyle ':completion:*:*:(vim|gvim):*' ignored-patterns '*.(o|d)'
件数:
compinit
- 初始化完成系统。
zstyle
- 可用于自定义完成系统等的内置配置。为要操作的代码提供键值对。
:completion ...
- 此特定键值对的 'context'。它是一组多层次的模式。找到您需要的上下文可能会让人望而生畏,但对于制表符补全,您通常可以指望 completion
是第一个术语,程序名称是第四个术语。
(vim|gvim)
- 程序名称。这是一个类似 glob 的模式,因此这适用于 vim
或 gvim
.
ignored-patterns
- 样式,即我们正在设置的键。
'*.(o|d)'
- 键值对的值。在这里,这是我们要忽略的 glob 模式。接受多个参数; '*.o' '*.d'
效果相同。
大多数样式以及 zstyle
命令的一些文档都记录在 zshmodules
手册页中。
假设我在一个目录(使用 zsh)中包含以下三个文件:hello.c
、hello.o
和 hello.d
.
现在,如果我输入 vim he
并按 TAB,我想要 zsh,而不是给我 vim hello.
,给我 vim hello.c
忽略 hello.o
和 hello.d
.
我只希望它适用于 vim
,而不是其他命令 xxd
。有没有办法在 zsh 中实现这一点?
谢谢
尝试将此添加到 .zshrc
:
autoload -Uz compinit && compinit
zstyle ':completion:*:*:(vim|gvim):*' ignored-patterns '*.(o|d)'
件数:
compinit
- 初始化完成系统。zstyle
- 可用于自定义完成系统等的内置配置。为要操作的代码提供键值对。:completion ...
- 此特定键值对的 'context'。它是一组多层次的模式。找到您需要的上下文可能会让人望而生畏,但对于制表符补全,您通常可以指望completion
是第一个术语,程序名称是第四个术语。(vim|gvim)
- 程序名称。这是一个类似 glob 的模式,因此这适用于vim
或gvim
.ignored-patterns
- 样式,即我们正在设置的键。'*.(o|d)'
- 键值对的值。在这里,这是我们要忽略的 glob 模式。接受多个参数;'*.o' '*.d'
效果相同。
大多数样式以及 zstyle
命令的一些文档都记录在 zshmodules
手册页中。