为vim自动完成递归包含一个目录

Dan*_*ngs 4 vim

我从源代码的基目录中使用vim.在编辑单个文件时,我希望自动完成考虑此目录(和子目录)中每个文件的每个单词.

Ing*_*kat 7

完成由'complete'选项控制.使用该k标志,您可以拥有Vim扫描文件.该**通配符代表一个递归下降到子目录.瞧:

:set complete=k**/*
Run Code Online (Sandbox Code Playgroud)

如果要保留其他默认位置(其他缓冲区,包含的文件等),请使用:set complete+=添加它.


或者,因为对于默认值来说这可能太慢,您可以使用'dictionary'选项并使用Ctrl-X Ctrl-K完成:

:set dictionary=**/*
Run Code Online (Sandbox Code Playgroud)


小智 5

:argadd **/*
Run Code Online (Sandbox Code Playgroud)

这将递归地将所有文件加载到缓冲区中,完成将考虑它们.请注意,这将加载所有文件,包括您可能不想添加的文件,例如二进制文件或CVS目录中的文件.一个更细粒度的水珠如下面的那个可能是一个好主意.

:argadd **/*.cpp
Run Code Online (Sandbox Code Playgroud)