2011-10-20 9 views
1

vimの「タグリスト」プラグインを使用してプロジェクト内のソースファイルをナビゲートしていますが、C++ファイルの操作に特有の問題が発生しています。 Javaなどの他の言語で)。 1は、完全修飾、他ではない、すなわち:等々VimタグリストプラグインでC++タグが2回表示される

initialise [()] 
ClassName::initialise [()] 
update [()] 
ClassName::update [()] 

とファイル内の各機能については

は、それが二つのタグが表示されます。これは私のctagsファイルが--extra = + Qで生成されるように、理解しやすいですctagsのためにmanページに記載されているようにこれは、

は[s]は、各タグのための余分なクラス修飾タグエントリを含めますクラスのメンバ(この情報が抽出される言語、現在はC++、Eiffel、Java)。修飾タグの実際の形式は、タグが派生した言語(修飾された呼び出しが言語でどのように指定されるかに最も自然な形式を使用します)によって異なります。 C++の場合は、 "class :: member"という形式です。エッフェルとJavaの場合は、 "class.member"という形式です。これにより、タグファイル内に複数のタグ名が出現する場合に、特定のタグの位置を容易にすることができる。ただし、これにより、タグファイルのサイズが2倍以上になる可能性があります。

私は等々移動し、するには、Ctrl +]を使用している場合、この設定は、私には有用であるので、私はそれを維持することを好むだろうが、私はむしろ、認定バージョンがタグリストメニューでストリッピングしたと思います。私は答えを探しましたが、この問題に関連するものは何も見つかりませんでした。 OmniCPPCompleteは--extra = + qの使用を推奨していると思いますので、多くのC++プログラマがそれを使用することを期待しています。

以下は私のタグとタグリストの設定です。どんな助けにも感謝!

〜/ .ctags:

--c++-kinds=+p 
--fields=+iaS 
--extra=+q 

〜/ .vimrcと(タグリストの設定は、抽出された)

let Tlist_GainFocus_On_ToggleOpen = 1 
let Tlist_Process_File_Always = 1 
let Tlist_File_Fold_Auto_Close = 0 
let Tlist_Enable_Fold_Column = 0 
let Tlist_Use_Right_Window = 1 
let Tlist_Show_One_File = 1 
let Tlist_Ctags_Cmd = 'ctags' 
+0

答えは私の顔を見ていた! taglistが実際にタグファイルを使用するだけでなく、毎回独自のctagsを実行していたことに気づいていませんでした。私がする必要があったのは、タグリストのctagsコマンドでこれらのC++固有の設定を明示的に無効にすることだけでした: Tlist_Ctags_Cmd = 'ctags --extra = -q --C++ - 種類= -p' この投稿は便利です同じ問題を抱えている人! – danielpwright

+0

'@' danielpwright:はい、これは一般的な落とし穴ですが、あなた自身の質問に答えて、受け入れられるとマークすることができます。質問が回答されたことを他の人が見るのが簡単で、答えを探すために検索するのがより簡単です – sehe

+0

@sehe Dulyは指摘した!私はそれをやろうと思ったが、新しいユーザーとして、それを投稿してから7時間、私自身の質問に答えることができなかった。とにかく、私は以下の答えを追加しました。 – danielpwright

答えて

3

答えは顔で私を見つめていました! taglistが実際にタグファイルを使用するだけでなく、毎回独自のctagsを実行していたことに気づいていませんでした。

let Tlist_Ctags_Cmd = 'ctags --extra=-q --c++-kinds=-p' 

うまくいけば、この記事は、同じ問題を持っている誰にも便利になるだろう:私が行うために必要なすべては、明示的にそれらのC++タグリストのctagsの中の特定の設定は、このようにコマンドを無効にしました!

関連する問題