我有一個運行此命令的文件夾llvm2.9。Vim和Ctags:在生成標記時忽略某些文件
$> ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
這是* .html文件也是其存在於llvm2.9 /文檔索引方法。我發現這一點,因爲當我按下ctrl-]某些類,它去了html文件。
如何強制ctags單獨使用.cpp/.h文件或忽略特定目錄。
感謝
我有一個運行此命令的文件夾llvm2.9。Vim和Ctags:在生成標記時忽略某些文件
$> ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
這是* .html文件也是其存在於llvm2.9 /文檔索引方法。我發現這一點,因爲當我按下ctrl-]某些類,它去了html文件。
如何強制ctags單獨使用.cpp/.h文件或忽略特定目錄。
感謝
vim的最簡單的方法是
:!ctags {.,**}/*.{cpp,h}
說明:花括號擴展到
:!ctags ./*.cpp **/*.cpp **/*.h **/*.h
所以它會在源文件或頭文件當前目錄(
./
)或任何嵌套目錄(**/
)。注**/
將不匹配當前目錄(它總是匹配至少1次目錄級別)
在外殼:
find -iname '*.cpp' -o '*.h' -print0 | xargs -0 ctags
說明:此遞歸找到所有的.cpp和。 h文件,並在命令行上將它們傳遞到
ctags
。方式
print0
和-0
一起工作是爲了確保它怪異的文件名可以正常工作(例如,包含空格,甚至新行字符)
我會留下的ctags的選項,其餘爲你自己的想象:)
PS。對於近期的bash-ES,您可以使用
shopt -s globstar
ctags {.,**}/*.{cpp,h}
,並得到幾乎相同的行爲在vim!
你能解釋這些命令中的每一個發生了什麼嗎? –
@ still_dreaming_1我認爲是。請參閱更新 – sehe
如果您需要排除的不僅僅是.html文件更多的是文件類型:
不能逗號的排除選項裏面單獨的列表。這不起作用:
ctags --exclude=*.html,*.js ./*
但是,您可以將多個排除選項:
ctags --exclude=*.html --exclude=*.js ./*
傳遞-V選項來幫助調試:
ctags -V --exclude=*.html --exclude=*.js ./*
給人的輸出:
Reading initial options from command line
Option: --exclude=*.html
adding exclude pattern: *.html
Option: --exclude=*.js
adding exclude pattern: *.js
引用您的排除模式以避免shell擴展。 – Walf
我不想追查其可能在大型項目中得到處理每一個文件類型,而我只是在Python感興趣,所以我只能明確地使用ctags --languages=Python ...
處理Python文件。語言名稱列表可以使用ctags --list-languages
來查看。
它似乎是問題的80%是由_forcing的language_到CPP所致。你爲什麼這樣做? – sehe
否則,點擊某個函數定義需要我在那裏上市,而不是CPP文件中的HTML文件。 – excray
你確定嗎?我的猜測是,處理HTML文件_without_'--language力= C++'會_not_拿起C++定義在首位的HTML中。你有證實嗎?另外,我想你已經看到了我的答案(我的理解這個問題,我只是想挑戰的前提下有點太) – sehe