2011-10-12 11 views
20

私はこのコマンドを実行したフォルダllvm2.9を持っています。VimとCtags:タグの生成中に特定のファイルを無視する

$> ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ 

これは、llvm2.9/docsにも存在していた* .htmlファイルのインデックス方法でした。私はいくつかのクラスのために私がctrl-]を押すと、htmlファイルに行きましたので、これを見つけました。

強制的にctagsを強制的に.cpp/.hファイルを単独で使用するか、特定のディレクトリを無視します。

おかげ

+0

問題の80%がlanguage_をcppに追加することによって発生しているように見えます。どうしてそれをするの? – sehe

+0

それ以外の場合、特定の関数定義をクリックすると、cppファイルの代わりにhtmlファイルが表示されます。 – excray

+0

本当ですか?私の推測では、HTMLファイルを処理すると_without_ '--language-force = C++'は最初にHTMLの中のC++定義を取り上げません。それを確認しましたか?また、私はあなたが私の答えを見てきたと思う(私は質問を理解した、ちょうど前提に少しでもチャレンジしたい) – sehe

答えて

17

はあなたがちょうど.htmlファイル以上のものを除外するために必要がある場合は --exclude=*.html

+0

を参照してください(これはexeburant ctagsで動作し、通常のタグプログラムについてはわかりません) – skeept

+3

とは何ですか?コンマで区切られていますか? – eddy147

3

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とほとんど同じ動作をします。あなたは除外オプション内のリストを区切るカンマすることはできません

+0

これらのコマンドのそれぞれについて何が起こっているのか説明できますか? –

+0

@ still_dreaming_1そうだと思います。更新 – sehe

12

を使用してファイルタイプを除外することができます。これは動作しません:

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 
+0

シェル展開を避けるために除外パターンを引用します。 – Walf

1

私はしたくなかった大規模なプロジェクトで処理される可能性のあるすべてのファイルタイプを追跡して、私はPythonだけに興味があったので、私は明示的にctags --languages=Python ...を使ってpythonファイルを処理しました。言語名のリストはctags --list-languagesを使って見ることができます。

関連する問題