web-dev-qa-db-ja.com

VimとCtags:タグの生成中に特定のファイルを無視する

このコマンドを実行したフォルダーllvm2.9があります。

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

これは、llvm2.9/docsにも存在する* .htmlファイルのインデックス作成メソッドでした。あるクラスでctrl-]を押すと、htmlファイルに移動したのでこれを見つけました。

Ctagsに.cpp/.hファイルのみを使用させるか、特定のディレクトリを無視させるにはどうすればよいですか。

ありがとう

26
excray

--exclude=*.htmlを使用してファイルタイプを除外できます

22
skeept

.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
16
eupharis

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とほとんど同じ振る舞いをします!

4
sehe

大規模なプロジェクトで処理される可能性のあるすべてのファイルタイプを追跡する必要はなく、Pythonのみに関心があったため、ctags --languages=Python ...を使用してpythonファイルのみを明示的に処理しました。言語名のリストは、ctags --list-languagesを使用して表示できます。

2
Ben