5

次のようにタグ(Exuberant Ctags 5.9〜svn20110310)を生成します。

 ctags --c++-kinds=+p --fields=+iaS --extra=+q -L ctags.files

私は大まかにこのクラス構造を持っています:

class RenderObject
{
    InterpolatedVector offset;
};

class Quad : public RenderObject
{
};

class KeyframeWidget : public Quad
{
    void shiftRight()
    {
        if (!offset.isInterpolating())
            offset.interpolateTo(Vector(offset.x+80, 0), 0.1, 0, 0, 0);
    }
};

(コードはAquariaのオープンソースリリースからのものです。)

ジャンプオンoffsetCtrl- )にタグを付けると、コードベース内の]すべてのリストを取得します。最後までoffset入力すると、OmniCppCompleteは。に対してのみ補完の提供を開始します。offset.shiftRight()InterpolatedVector

タグジャンプをOmniCppCompleteと同じくらいスマートにするにはどうすればよいですか?

タグジャンプがコンテキストを使用しないので、シンボル名しか知らないというだけですか?(それはまったく同じ:tag <C-r><C-w><CR>ですか?)コンテキストアウェアにするvimの代替手段はありますか?

4

1 に答える 1

2

私は最近、Vim用のSmartTagプラグインの使用を開始し、周囲のC++コードからのコンテキスト情報を使用して適切なタグを見つけるのが非常に優れていることを発見しました。

ここからダウンロードできます:

https://github.com/MarcWeber/SmartTag

Ctrl-]で使用できるようにするには、tagfuncパッチが適用されたVimリリースを使用する必要があります。ここにあります:

http://llorens.visualserver.org/vim73-tagfunc.zip

于 2011-12-01T22:58:53.803 に答える