当我尝试在Vim(Linux)中打开文件进行编辑时,当我按TAB时,Vim仅使用当前目录中的文件名自动填充文件名。但是,在网上搜索过,我认为从版本7开始,Vim应该使用搜索路径中所有目录中的文件名来支持类似bash的文件名自动完成。
比如说,目录file1
中有一个文件dir1
(该目录也在环境变量PATH中)。
我在Vim中输入以下命令:
set path=/dir1
set wildmode=list:longest
然后,当我输入:
:e fil<TAB>
文件名不是自动填充。如何在Vim中启用此功能?
答案 0 :(得分:6)
标签完成工作。你只是期望它做一些它实际上不应该做的事情。
:e[dit]
及其兄弟姐妹(:sp[lit]
,:vs[plit]
,:tabe[dit]
)根本不使用path
选项,无论使用何种版本你有Vim。
改为使用:fin[d] fil<Tab>
(以及:sf[ind]
,:vert sf[ind]
,:tabf[ind]
)。
使用set path=/dir1/**
递归:find
。
请参阅:help 'path'
和:help :find
。
修改强>
通常被认为是良好的做法&#34;从项目的根目录启动Vim:
$ cd /path/to/project
$ vim somefile
主要优点是它设置了Vim&#34;当前目录&#34;一个可用的值,允许您相对容易地浏览您的项目或以干净和直观的方式使用项目中的外部程序。
顺便说一句,我只使用:find
(和它的兄弟姐妹)进行文件导航,我有一些提示要分享:
" sets 'path' to:
" - the directory of the current file
" - every subdirectory of the "current directory"
set path=.,**
" enables the wildmenu
set wildmenu
" ignore specific directories and files
set wildignore+=*.min.*
" case-insensitive search
set wildignorecase