一言で言えば、Vimエディターのworkingオートコンプリート機能を探しています。 前に議論した LinuxでVimはIDEを完全に置き換え、それは確かに真実ですが、1つの重要な機能が欠けています:オートコンプリート。
私は知っています Ctrl+N、 過剰なCtags統合 、 タグリスト 、 cppcomplete および OmniCppComplete 。残念ながら、これらはどれも「オートコンプリートの動作」の説明に当てはまりません。
class
またはwhile
の綴り方を忘れた場合にのみ(うまく)動作します。しかたがない。tags
ファイルをもう一度手動で更新する必要があります。私は、最新の本格的なIDEでさえ、優れたC++コード補完を提供していないという事実を知っています。それが、私が今までこの分野でのVimの欠如を受け入れてきた理由です。しかし、私は基本的なレベルのコード補完を求めることはあまり多くなく、実際に生産的な使用に必要だと思います。そこで、少なくとも次のことを達成できるものを探しています。
構文の認識。 cppcompleteの約束(ただし、私には配信しません)、正しい、スコープを意識した以下の自動補完:
variableName.abc
variableName->abc
typeName::abc
そして、実際には、それ以外のものはまったく役に立ちません。
設定可能性。ソースファイルの場所を簡単に指定する必要があります。そのため、スクリプトがオートコンプリート情報を取得する場所を指定する必要があります。実際、必要なインクルードパスを指定するMakefileをディレクトリに持っています。 Eclipseはそこにある情報を解釈できますが、Vimスクリプトも同様に解釈できます。
最新。ファイル内の何かを変更したらすぐに、オートコンプリートにこれを反映させたいです。 notctags
(または同等のもの)を手動でトリガーしたい。また、変更はincrementalである必要があります。つまり、1つのファイルのみを変更した場合は、完全にnacceptableになります(ctags
がディレクトリツリー全体を再解析します).
何か忘れましたか?気軽に更新してください。
私は非常に多くの構成および/またはいじくりに慣れていますが、ソリューションをゼロからプログラミングしたくはありません。また、Vimスクリプトのデバッグは得意ではありません。
最後の注意として、JavaとC#に似たものが本当に欲しいのですが、それは望みすぎだと思います:ctags
はコードファイルのみを解析し、JavaとC#の両方が巨大で、インデックスを作成する必要があるプリコンパイル済みフレームワーク。残念ながら、 IDEを使用しない.NETの開発 は、C++よりもさらにPITAです。
YouCompleteMe を試してください。 libclangインターフェースを介してClangを使用し、セマンティックC/C++/Objective-C補完を提供します。これはclang_completeによく似ていますが、かなり高速で、ファジーマッチングを備えています。
上記に加えて、YCMはC#、Python、Go、TypeScriptなどのセマンティックコンプリートも提供します。また、セマンティックサポートを持たない言語の非セマンティック、識別子ベースのコンプリートも提供します。
clang_complete もあり、これは clang
コンパイラ を使用してC++のコード補完を提供しますプロジェクト。このプラグインには、 トラブルシューティングのヒント に関する別の質問があります。
このプラグインは、プロジェクトがコンパイルされている限りかなりうまく機能するように見えますが、大規模なプロジェクトでは非常に遅くなります(タグリストを生成するために完全なコンパイルを試みるため)。
要求されたとおりに、ここで私が以前に与えたコメントです:
これを見てください:
このリンク は、MacOSXでmonodevelopを使用する場合に役立ちます。
幸運と幸せなコーディング。
私はパーティーに少し遅れましたが、 autocomplpop が役立つかもしれません。
誰かがcode_completeに言及しましたか?
しかし、あなたはctagsが好きではなかったので、これはおそらくあなたが探しているものではありません...