我從我的源代碼的基本目錄中使用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。 –