我从我的源代码的基本目录中使用vim。我希望自动完成在编辑单个文件时考虑此目录(和子目录)中每个文件的每个单词。递归地为vim自动完成包含一个目录
4
A
回答
5
:argadd **/*
这将递归将所有文件加载到缓冲区,并且完成将考虑它们。请注意,这将加载所有文件,包括您可能不想添加的文件,例如二进制文件或CVS目录中的文件。比如下面的更细粒度的glob可能是一个好主意。
:argadd **/*.cpp
7
完成由'complete'
选项控制。使用k
标志,您可以拥有Vim扫描文件。 **
通配符表示递归下降到子目录中。瞧:
:set complete=k**/*
如果你想保留其他默认位置(其它缓冲剂,包括文件等),使用:set complete+=
要添加到它。
或者,因为这可以为默认的太慢了,你可以使用 '字典' 选项,并使用CTRL-X CTRL-K完成:
:set dictionary=**/*
1
我想一个更好的办法是使用产生在Exuberant CTags目录系统中的标签文件。
首先,建立源的根与tags
文件:
的ctags -R。
这可能会找到比你喜欢的更多,但你可以调整它与进一步的命令行选项。
将您的tags
选项设置为引用此文件(“tags”是默认名称),或使用set tags=./tags;/
在您的目录树中搜索找到的第一个标签文件。请参阅:help file-searching
以了解用于向上搜索的;/
语法。
最后,确保't'在您的完整选项中。它在默认情况下存在,但请与set complete?
联系。如果它不在那里,set complete+=t
会放在那里。
我个人从我的'complete'
选项中删除'i'和'd',因为即使键入CTRL_Y(是,接受完成)或CTRL_N(否,拒绝完成)或继续正常输入将会停止磁盘访问搜索。如果所有包含的文件都在您的标签文件中,您会立即发现完成。
相关问题
- 1. Vim目录完成
- 2. PhpStorm本地目录自动完成
- 3. 从目录中递归地包含ctags文件
- 4. 递归地包含所有模型子目录
- 5. vim路径自动完成,我该如何进入一个目录?
- 6. vim自动完成功能
- 7. Vim的自动完成
- 8. 高级vim自动完成
- 9. VIM自动完成导航
- 10. Vim的C++自动完成
- 11. Vim - 自动完成Java
- 12. clang_complete:iOS的Vim自动完成
- 13. VIM自动完成来源
- 14. 递归地删除目录
- 15. jQuery自动完成 - 包含说明
- 16. Python IOError:[递归目录2]来自递归目录调用
- 17. 自动完成一个包含ID和值的下拉列表
- 18. 全局递归/零个或多个目录,不包括目录
- 19. jquery自动完成将一个变量传递给第二个自动完成
- 20. 使用jedi-vim自动完成父对象的自动完成
- 21. 如何添加一个递归循环来删除一个包含所有子目录和文件的目录?
- 22. IntelliJ包含一个包含在排除目录中的目录?
- 23. Powershell返回包含特定文件但不完全递归的目录
- 24. 使用wget递归获取一个包含任意文件的目录
- 25. Haskell“isPrefixOf”函数递归地完成
- 26. 这可以递归地完成吗?
- 27. 递归地包装一个元素
- 28. 目录递归
- 29. bash自动完成没有目录
- 30. 如何在vim中使用args递归地排除一些目录?
谢谢你们,set complete =和argadd都有效。由于缺乏Scala支持,未尝试Exuberant Ctags。 –