2

c++でクラスを説明するctagsをどのように作成しますか? 関数のタグにジャンプすると、関数の名前は同じですが、クラスが間違っています。

B b; b.init();

そしてあります

A::init() {} B::init() {}

b.init() の init にカーソルを置き、B::init() {} ではなく A::init() {} にジャンプします。

私のコードでは a と b を使用していないことに注意してください。したがって、ctags を実行すると機能しない可能性があります。それが一般的な問題でない場合は、実際のコードを投稿できます。

4

3 に答える 3

3

これは元の問題を解決しませんが、次のようなマッピングが役立つ場合があります。

nnoremap CTRL+] :exe 'tj' expand('<cword>')<CR>

これにより、 の定義が複数ある場合に、少なくともCTRL+]選択メニューが表示されますinit()

于 2010-10-21T22:26:49.927 に答える
1

C ++の解析を行うにはvimが必要になるため、これを行う方法はわかりません。そのような状況では:tselect、リスト全体を表示して 1 つを選択するために使用します。

于 2010-10-21T22:24:49.710 に答える
0

この問題を解決するためにlh-tagsを書きました [これにはlh-vim-libが必要です]。

b が A か B かは認識しませんが、ジャンプ先のタグを選択するための小さな GUI を提案します。

インタラクティブな として参照してください:tselect。カーソルを識別子の上に置き、<c-w><m-down>通常モード (構成可能) で入力します。また、現在のプロジェクトに/が設定されている場合<c-x>taに基づいて、ctags ベースを構築および更新する方法も提案します。:wg:b:ctags_dirname

于 2010-10-22T07:03:42.463 に答える