我正在 Neovim 中寻找一种使用
**
递归设置路径的方法,但仅适用于特定文件类型。例如。 vim.opt.path="/a/**/*hpp"
不起作用。我想找到特定的文件类型,同时保持 Neovim 中路径进程的高性能。我当前管理路径进程性能的方法是使用 vim.opt.path
和 vim.opt.wildignore
设置并避免对大型目录进行递归搜索。所以它看起来像:
local init_path = {
".",
"/a/**",
"/b/**",
"/usr/include/**",
"**"
}
vim.opt.path:append(init_path)
vim.opt.wildignore = {
'*/c/*',
'*/d/*',
'*.exe',
'*.bin',
}
path
选项的全部目的是通过在多个预定义目录中进行搜索来简化文件搜索。例如,通过仔细定义 path
,您不必在包含中使用整个路径,也不必使用 :find
过于具体。
因此,path
的值应该是有趣目录的精选列表,而不是垃圾填埋场……这使得在
,**
中使用
path
成为一种反模式。如果深度不是太深,
,dir/**
在某些情况下可能是可以接受的。 YMMV.代替:
.,/a/**,/b/**,/usr/include/**,**
做:
.,,/a/cooldir,/b/supercooldir,/usr/include
您越具体,文件搜索就越有用和快速。第二……可以通过两种方式将设置应用于特定文件类型。
vimrc
中使用自动命令:
augroup MyFileTypeSettings
autocmd FileType foo setlocal path=.,/a/cool,/b/supercool,/usr/include
augroup END
优点:
vimrc
vimrc
中具有 以下行之一:
filetype plugin on
filetype plugin indent on
filetype indent plugin on
cpp
文件类型):
~/.vim/after/ftplugin/cpp.vim
setlocal path=.,/a/cool,/b/supercool,/usr/include
path
文件类型的文件时,
cpp
都将在本地设置为所需的值。优点:
惯用语
很多文件