Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Vim在通过命令行/shell打开文件时忽略文件扩展名?_Vim - Fatal编程技术网

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

如何使Vim在通过命令行/shell打开文件时忽略文件扩展名?,vim,Vim,考虑以下目录树: root/include/file.hpp root/source/file.cpp root/images/file.png 命令行位于目录root中 在vimrc文件中,有set-wildignore=*.png 如果在文件夹root中打开Vim并运行:next*/file.*,它将仅打开file.hpp和file.cpp 但是,如果使用Vim*/file.*从命令行启动Vim,它将打开所有三个文件 因此,在向其提供文件名时,它首先加载文件,然后加载vimrc?当通过命令

考虑以下目录树:

root/include/file.hpp
root/source/file.cpp
root/images/file.png
命令行位于目录
root

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

如果在文件夹
root
中打开Vim并运行
:next*/file.*
,它将仅打开
file.hpp
file.cpp

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


因此,在向其提供文件名时,它首先加载文件,然后加载vimrc?当通过命令行使用Vim打开文件时,有没有忽略扩展名的方法?或者,在执行
:next*/file.
操作时,要先让Vim加载
vimrc
,Vim会从Vim内部展开通配符并通过wildignore进行筛选。在shell中执行
vim*/file.*
时,shell展开通配符,并将所有三个文件传递给vim

根据您的shell,这可能会起作用:

vim +"args */file.*"

在第一个场景中,glob扩展由Vim完成,因此遵循
vimrc
中的规则

在第二个场景中,glob扩展由shell完成,没有理由期望它遵守
vimrc
中的规则

您可以执行类似于
$vim-c“next*/file.*.
”的操作,这实际上是在没有文件名的情况下打开vim并执行
next*/file.*


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

哦,这就解释了。非常感谢。