当我使用 :find
命令后跟文件名的第一个字母,然后按 Tab 键(以自动完成)时,VIM 锁定,我必须关闭并重新开始。
例如,我写
:find nam
然后我点击了选项卡。 VIM 在后面写三个点:
:find nam...
然后停止工作。无限期。当我位于我正在处理的项目的根目录中时,就会发生这种情况。该目录有以下子文件夹:
.git/
.idea/
.sass-cache/
.tmp/
app/
node_modules/
phone/
test/
还有这些文件:
.bowerrc
.gitattributes
.gitignore
.jshintrc
Gruntfile.js
Readme.md
bower.json
karma.conf.js
npm-debug.log
package.json
todo.txt
如果我 cd 到应用程序目录并尝试相同的命令,当我点击选项卡时,自动完成功能会完美运行。
我在 Windows 上运行 VIM。我已在 _vimrc 文件上将路径变量设置为 .,,**
(set path=.,,**
)。
那么,有人知道发生了什么吗?谢谢。
最佳答案
AFAIK,:find
使用了浪费的深度优先策略,使其在进入每个目录和每个子目录之前下一个同级目录。
早期版本的 npm 因 node_module
目录结构的潜在深度而臭名昭著,因此您的 node_modules
目录很可能在这里充当陷阱。
由于您可能不想编辑 node_modules
中的任何内容,我建议您将其添加到 wildignore
选项中:
set wildignore+=*/node_modules/*
此外,set path=.,,**
中的 **
意味着 ,,
,因此您可以将该值简化为 .,**
.
关于 Vim :find command deadlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37637815/