如何通过命令行/ shell打开文件时使Vim忽略文件扩展名?

时间:2016-01-07 14:54:55

标签: vim

考虑以下目录树:

root/include/file.hpp
root/source/file.cpp
root/images/file.png

命令行位于目录root内。

vimrc文件中,有set wildignore=*.png

如果您在root文件夹中打开Vim并运行:next */file.*,则只会打开file.hppfile.cpp

但是,如果从命令行使用vim */file.*启动Vim,则会打开所有三个文件。

所以,当它输入文件名时,首先加载文件,然后加载vimrc?有没有办法在通过命令行使用Vim打开文件时忽略扩展?或者先让Vim加载vimrc

2 个答案:

答案 0 :(得分:3)

在第一个场景中,全局扩展由Vim完成,因此遵守vimrc中的规则。

在第二种情况下,全局扩展由您的shell完成,并且没有理由期望它遵守vimrc中的规则。

您可以执行$ vim -c "next */file.*"之类的操作,它基本上会打开没有文件名的Vim并执行next */file.*

或者您可以直接在shell中排除模式。假设您设置了extglob,可以使用$ vim !(file.png)进行bash。

答案 1 :(得分:1)

当从Vim中执行:next */file.*时,vim会扩展通配符并通过wildignore过滤。从shell执行vim */file.*时,shell会扩展通配符,并将所有三个文件传递给Vim。

根据你的shell,这可能会改为:

vim +"args */file.*"