3

Vim は優れたエディターであり、多くのタスクに使用しています。

しかし、新しい (場合によっては巨大な) コードベースの作業を開始する場合、物事がどのように機能するかを理解する目的でコードを一周するためにそれを使用するのは快適ではありません。

たとえば、C++ 関数がどこで使用されているかを確認したい場合:vimgrep、すべての**/*.cppファイルと:copenクイックフィックス ウィンドウでその関数を使用して、その文字列が出現するたびにジャンプすることができます。

たとえば、Eclipse (C++ メソッドの呼び出し階層) で同じことを行うと、それは単なる文字列ではなく、オブジェクトで定義された C++ メソッドになるため、その関数の使用法を正確に示すことができます (また、別のクラスで定義された同じ名前の関数)。

問題は、vim をコード分析用の強力なツールにするにはどうすればよいかということです。

サブ質問:

  • このために設計された vim プラグインはありますか?
  • コードを分析するためだけに vim を使用するのは理にかなっていますか? おそらく外部ツール (例: OpenGrok ) で作業できますか?
4

3 に答える 3

7

Vim はテキストエディタです。あなたが望むのは、テキストの編集とはほぼ完全に直交しており、Vim 自身の能力の範囲外です。

ただし、Vim はプロジェクト内を移動するためにctagscscopeなどの外部ツールを使用するのが得意です。tagsファイルやデータベースを作成したと仮定すると、Vim には「定義にジャンプ」、「使用箇所にcscope.outジャンプ」などに使用できるコマンドがたくさんあります。とで必要な情報。:ts[elect] foo<C-]>:h ctags:h cscope

興味がある場合は、GNU GLOBALも別の方法です。のもう 1 つcscopeの長所は、シェルで使用できる独自の TUI が付属していることです。

cscope私が知っている唯一の(+ ctags) インターフェイスを提供するプラグインは、C に限定されているように見えるCCTreeです。

TagBarTagListctagsなどの指向性のあるプラグインはたくさんありますが、定義に限定されているものの、使用法や呼び出し元も実行できることに注意してください。ctagscscope

これらのツールはコード インデクサーであることに注意してください。コードを "理解" したり、IDE ツールと同じくらい正確であることを期待するべきではありません。しかし、私は Vim が大好きなので、テキスト エディタよりも Vim のタスクにより適したツールを使用することをお勧めします。

于 2013-04-26T22:26:33.337 に答える
2

Netbeans から Vim に切り替えたとき、私はあなたと同じように感じました。右クリックで関数定義を表示する Netbeans 機能を見逃していました。免責事項: 私は主に Ruby と Javascript を使用し、時には PHP も使用します。

ctags を試してみましたが、あまり正確ではなく、きれいでもないことがわかりました。また、プラグイン Tagbar と Taglist を ctags と一緒に使用してみました。私の意見では、タグバーは少し重く、タグを処理するときに多くの CPU とメモリを消費します。Taglist の方が優れていますが、最適な使用例は、タグの代わりに長いファイルを参照することです。

最後に、ctags の使用をあきらめました。

後で、言語に固有のより良い解決策があることがわかりました。たとえば、Ruby には、インストールされた gems(libs) 内の任意の関数の ri doc を 1 つのキーだけで表示するプラグインがあります。

しかし、私の習慣はすでに変わったので、私はまだそれを頻繁に使用していません. 私は物事が無駄がなく、適切な場所にあり、速いことが好きです。

今、私は快適に感じています:

  1. Vim と一緒に tmux を使用します。ドキュメントを確認し、必要に応じてコンソールでコードを確認してください。
  2. snippet plugin(Neosnippet) を使用して、頻繁に使用されるコード、メソッドを保存します。Vim でのスニペット管理は、私が見たどの IDE よりもはるかに優れており、柔軟です。
  3. マウスにあまり触れずに、脳を使ってより多くを保存します。

これらが役立つことを願っています。

于 2013-04-27T02:21:24.607 に答える