24

Pre: 私は VIM で 1 年ほど働いています。素晴らしいものがたくさんあります: 組み合わせ、スクリプト。別のエディターで何かを編集しているときはいつでも、VIM のナビゲーションがないと動きが鈍い/不快に感じます。

問題: 最も気になるのは、既存のツール (ctags、cscope) を使用したソース コードのナビゲーションです。多くの場合、ctags は変数の宣言を見つけることができません。cscope は、ctags とは対照的に、同じ変数名を持つすべての定義を見つけます。コール ツリー ナビゲーション、単一のクラス定義に沿った前方宣言の検索などと同じ狂気です。MS Intellisense、Visual Assist、さらには Eclipse のソース コード ナビゲーションと比較すると、Exuberant Tags/cscope は少なくとも 10 年間非推奨のようです。

ViEMU のようなツールがあることは知っていますが、VIM の多くの機能が失われるため、問題を実際に解決することはできません。

質問: ソース解析を改善するツールがあるかどうか、または Intellisense のようなソース解析エンジンを VIM に統合する方法があるかどうか疑問に思っていました。たぶん、商用ソリューションがあるか、それを実装する準備ができている人がいますか?

VIM のすべての利点は、単一の Alt-G ショートカットで実行される Visual Assist と比較して、クラス定義に移動するときに無駄になる時間を節約するように見えます。

4

2 に答える 2

7

検索とコール ツリー

Vim でいくつかの Eclipse 機能を使用する方法であるeclimを試すことができます。

C/C++ の場合、以下が提供されます。

  • コンテキスト依存の補完 (ただし、バグがあるため Windows では無効になっています)
  • プロジェクト ファイル内の状況依存検索 ( 経由:CSearchContext)
  • 関数/メソッドのコール ツリー ( :CCallHierarchy)
  • コード検証 ( :Validate)

たいしたことではありませんが、場合によっては役立ちます。

コード補完

自動コード補完に関しては、私は主にOmniCppCompleteを使用します。これは、タグを使用してコンテキストを意識したコード補完を提供します。それほど悪くはありません。

Luc Hermitte のアドバイスに従って、ctags を必要としないが、clang をインストールする必要があるclang_completeを使用することもできます。

于 2011-02-23T07:59:23.610 に答える
1

残念ながら、それは本当の問題です。ctags や cscope は、Visual Studio のコード ブラウジングとほとんど競合できません。実際には、C++ コンパイラ フロントエンドを使用してエディターのコードを解析します。

于 2011-02-22T19:25:56.407 に答える