18

私は非常に大きなコード ベースを扱っており、Exuberant Ctags で使用するためにどのディレクトリを含めるかを選択すると便利です。

この--excludeオプションは、個々のファイル名とディレクトリ名を (グロビング ワイルドカードを使用して) 削除するのにうまく機能しますが、複数のディレクトリを含むパス パターンを除外する方法がわかりません。

たとえば、ディレクトリを除外したい場合がありますtestsが、処理thirdparty\tests中 (Windows で) のみです。問題は、--exclude=tests私が積極的に取り組んでいるコードのテストディレクトリを含め、除外するディレクトリが多すぎることです。

ここに私が試したいくつかのことがあります:

--exclude=thirdparty\tests
--exclude=thirdparty\\tests
--exclude=*\thirdparty\tests
--exclude=*\\thirdparty\\tests
--exclude=thirdparty/tests

タグファイルの調査によって証明されるように、Ctags はこれらすべてを黙って無視します。

特定の親ディレクトリが前にある場合にのみディレクトリを除外するにはどうすればよいですか?

追加した:

ここに私のctags --version出力があります:

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Jul  9 2009, 17:05:35
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +win32, +regex, +internal-sort
4

3 に答える 3

16

ある時点で、インデックスを作成するファイルのリストを定義する方が簡単な場合があります。そのリストをファイルに保存しctags -L <filename>、選択した少数だけにインデックスを付けるために使用します。

これによりfind(1)、インデックスを作成したくないディレクトリを整理するために使用できます。例:

find . -path ./Documentation -prune -o -print > indexme

のすべてのサブディレクトリ内のすべてのファイルをスキップします./Documentation

于 2011-11-19T09:56:14.283 に答える
10
ack -f | ctags -L -

ack指定されたディレクトリ内のソース ファイルを一覧表示します。ack -f --rubyまたはを使用して、スコープを特定の言語に制限できますack -f --type=ruby。を使用してディレクトリを除外することもできます--ignore-dir

ack --dumpack の組み込みファイル タイプを確認するために使用します。

于 2014-06-10T12:45:57.180 に答える