web-dev-qa-db-ja.com

Vim YouCompleteMeの構成

vundleを介してYouCompleteMe for Vimをインストールしました。動作しますが、現在のファイルに含まれている単語のみを表示します。 C++プログラムの開発に使用したいのですが、たとえば/ usr/includeのc ++ヘッダーファイルからオートコンプリートを表示するように構成するにはどうすればよいですか?どうもありがとう。

21
mastergap

ここでの提案は最初はうまくいくかもしれませんが、それが適切な方法であるかどうかはわかりません。 YCM開発者によると、プロジェクトを開始するたびに、新しい。ycm_extra_conf.pyファイルが必要です

から https://valloric.github.io/YouCompleteMe/#ubuntu-linux-x64-super-quick-installation

YCMは、開かれたファイルのディレクトリまたは階層内でその上にあるディレクトリで(再帰的に).ycm_extra_conf.pyファイルを探します。ファイルが見つかると、Python module。YCMはそのモジュールでFlagsForFileメソッドを呼び出し、現在のファイルをコンパイルするために必要な情報を提供する必要があります。また、フォールバックとして使用されるグローバルな.ycm_extra_conf.pyファイルへのパスを指定することもできます.YCMを作成していないファイルからの悪意のあるコードの実行を防ぐために、YCMは.ycm_extra_conf.pyごとに1回尋ねますこれは無効にでき、ファイルをホワイト/ブラックリストに登録できます。詳細については、オプションのセクションをご覧ください。

Vanilla .ycm_extra_conf.pyのコンパイルフラグを変更するだけでよい場合もありますが、開始するプロジェクトごとに新しいファイルを作成することをお勧めします。

3
xoSauce

~/.vim/bundles/YouCompleteMeに移動し、--clang-completerを使用してインストールスクリプトを実行する必要があります。そのため、./install.sh --clang-completerも実行します。終了後、Cのような言語のサポートが必要になります。

let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'~/.vimrcに配置する必要がある場合もあります。

20
Battleroid

病原体をインストールしました。上記の手順を./install.sh --clang-completeで試しました。この後、それは機能せず、実際にパスを追加する必要がありました。しかし、ここでの別の返信とは異なりました。つまり、

let g:ycm_global_ycm_extra_conf = '.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

そのため、パスに余分な「third_party/ycmd」があります。

7
deph

ここの人々が言っ​​たことはすべて正しいです。 2017年の時点で、「install.sh」スクリプトは非推奨になりました。次に、代わりに次のように入力してinstall.pyスクリプトを使用する必要があります。

./install.py --clang-completer

また、.vimrcファイルでは、「。vim/bundle/blahblahblah」の代わりに、次の項目を追加してアドレスの前に「〜/」を追加する必要があります。

let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"

vimが ".ycm_extra_conf.py"ファイルを見つけることができるように、.vimrcファイルに、ホームディレクトリからの絶対パスを指定します。そうしないと、おかしな動作が発生する可能性があります。

手動で設定ファイルを定義したくない場合に追加したかったのは、自動で生成するこの小さなリポジトリです。 https://github.com/rdnetto/YCM-Generator

0
user2267258