在Vim选项卡中,文件名的完成不起作用

在Vim选项卡中,文件名的完成不起作用,vim,autocomplete,Vim,Autocomplete,当我试图在Vim Linux中打开一个文件进行编辑时,当我按TAB键时,Vim仅使用当前目录中的文件名自动完成文件名。然而,在Web上搜索之后,我认为从版本7开始,Vim应该支持使用搜索路径中所有目录中的文件名实现类似于bash的文件名自动完成 例如,目录dir1中有一个文件file1,该目录也在环境变量PATH中 我在Vim中键入以下命令: set path=/dir1 set wildmode=list:longest 然后,当我打字时: :e fil<TAB> 文件名不是自

当我试图在Vim Linux中打开一个文件进行编辑时,当我按TAB键时,Vim仅使用当前目录中的文件名自动完成文件名。然而,在Web上搜索之后,我认为从版本7开始,Vim应该支持使用搜索路径中所有目录中的文件名实现类似于bash的文件名自动完成

例如,目录dir1中有一个文件file1,该目录也在环境变量PATH中

我在Vim中键入以下命令:

set path=/dir1
set wildmode=list:longest
然后,当我打字时:

:e fil<TAB>

文件名不是自动完成的。如何在Vim中启用此功能?

选项卡完成工作。你只是期望它做一些它实际上不应该做的事情

:e[dit]及其同级:sp[lit],:vs[plit],:tabe[dit]根本不使用路径选项,无论您使用的是哪个版本的Vim

使用:fin[d]fil代替and:sf[ind],:vert sf[ind],:tabf[ind]

使用set path=/dir1/**使:find recursive

请参阅:帮助“路径”和:帮助:查找

编辑

通常认为从项目的根开始启动Vim是一种良好的做法:

$ cd /path/to/project
$ vim somefile
主要的优点是,它将Vim的当前目录设置为一个可用值,允许您相对轻松地浏览项目,或者以干净直观的方式在项目上使用外部程序

顺便说一句,我只使用: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

Tab竣工工程。你只是期望它做一些它实际上不应该做的事情

:e[dit]及其同级:sp[lit],:vs[plit],:tabe[dit]根本不使用路径选项,无论您使用的是哪个版本的Vim

使用:fin[d]fil代替and:sf[ind],:vert sf[ind],:tabf[ind]

使用set path=/dir1/**使:find recursive

请参阅:帮助“路径”和:帮助:查找

编辑

通常认为从项目的根开始启动Vim是一种良好的做法:

$ cd /path/to/project
$ vim somefile
主要的优点是,它将Vim的当前目录设置为一个可用值,允许您相对轻松地浏览项目,或者以干净直观的方式在项目上使用外部程序

顺便说一句,我只使用: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

我喜欢在编辑时将每个文件的目录添加到路径中,将其添加到路径的开头,以便更快地搜索相关文件。我对标签文件做同样的事情;我以为我创建了一个关于它的wiki页面,但我现在找不到。@Ben,如果你找不到那个wiki页面,你能详细介绍一下你的工作流程吗?显然我从来没有把它变成一个真正的页面:在每个BufRead上,我都会从路径中删除默认路径,从路径中删除当前文件的路径,在默认路径前加前缀,然后在当前文件的路径前加前缀。因此,将来的搜索更喜欢与当前文件位于同一目录中的文件。出于类似的原因,我也会对标记文件执行同样的操作。我喜欢在编辑时将每个文件的目录添加到路径中,将其添加到路径的开头,以便更快地搜索相关文件。我对标签文件做同样的事情;我以为我创建了一个关于它的wiki页面,但我现在找不到。@Ben,如果你找不到那个wiki页面,你能详细介绍一下你的工作流程吗?显然我从来没有把它变成一个真正的页面:在每个BufRead上,我都会从路径中删除默认路径,从路径中删除当前文件的路径,在默认路径前加前缀,然后在当前文件的路径前加前缀。因此,将来的搜索更喜欢与当前文件位于同一目录中的文件。出于类似的原因,我对标记文件也做了同样的事情。