在Vim中,文件名的制表符完成功能不起作用

r8uurelv  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(144)

当我试图在Vim(Linux)中打开一个文件进行编辑时,当我按TAB键时,Vim只使用当前目录中的文件名自动完成文件名。但是,在Web上搜索后,我认为从Vim 7开始,应该支持使用搜索路径中所有目录中的文件名的类似bash的文件名自动完成。
比如说,在目录dir1中有一个文件file1(该目录也在环境变量PATH中)。
我在Vim中键入以下命令:

set path=/dir1
set wildmode=list:longest

然后,当我输入:

:e fil<TAB>

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

c0vxltue

c0vxltue1#

制表符完成是有效的。你只是期望它做一些实际上不应该做的事情。
: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

编辑

通常认为从项目的根启动Vim是一种“好的做法”:

$ cd /path/to/project
$ vim somefile

它的主要优点是将Vim的“当前目录”设置为一个可用的值,使您可以相对轻松地浏览项目,或者以一种干净直观的方式在项目上使用外部程序。

相关问题