0

Exuberant Ctagsの"ctags58.zip"アーカイブをWindowsの\Downloadsフォルダーに抽出したら、次のコマンドをvimrcファイルに追加します。

let $PATH .= ';C:\Users\USR\Downloads\ctags58'

:!mkdir C:\Users\USR\vimfiles\tagsまた、Vim (テキスト エディター)でコマンドを使用してフォルダーを作成した後、以下のコマンドが正しく機能しないのはなぜですか。

:!ctags --recurse=no --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:\Users\USR\vimfiles\tags\cpp C:\Users\USR\Projects\PROJ\include

と:

:!ctags --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:\Users\USR\vimfiles\tags\cpp C:\Users\USR\Projects\PROJ\include

これらのコマンドは、 \includeディレクトリ内のファイルにタグを付けずに、タグ ファイルを生成するだけです。これは完全なソースです:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME  Exuberant Ctags //
!_TAG_PROGRAM_URL   http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.8 //

私が望むのは、 \include サブディレクトリを除く\includeディレクトリ内のすべての C++ ファイルのタグ ファイルを生成することです。以下のコマンドは機能していますが、すべてのサブディレクトリで処理しています:

:!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f C:\Users\USR\vimfiles\tags\cpp C:\Users\USR\Projects\PROJ\include

パスC:\Users\USR\Projects\PROJ\includeが存在することに注意してください。

4

1 に答える 1

1

ctagsの--excludeオプションを使用して、名前がパターンに一致するファイルまたはファイルにリストされているファイルを除外できます。

サブディレクトリをまったく見たくない場合は、-R( --recurse) オプションを使用しないでください。次に、処理するファイルをリストする必要があります (それらを含むディレクトリではありません)。これは、ワイルドカードを使用して簡単に実行できます。たとえば、現在のディレクトリ内のすべてのファイルを処理するには、ctags *. 特定のファイル拡張子を持つファイルのみを含める場合は、適切なワイルドカード パターンを使用する必要があります。たとえば、*.ccまたは*.cxxC++ ファイルの場合。これを行っておらず、ファイルを含むディレクトリに名前を付けているだけのようです。

于 2013-09-28T18:51:13.987 に答える