web-dev-qa-db-ja.com

Clang Complete for Vim

clang_complete.vimをプラグインにコピーしましたが、変数の後に.と入力すると、次のように表示されます。

パターンが見つかりません

この問題を検索したところ、g:clang_complete_auto:g:clang_complete_copen:を構成する必要があると誰かが言った。これどうやってするの?

18
dalibocai

サンプルファイルを開いてみてください

vim /tmp/sample.cpp

いくつかのcppコードを入力します

#include <iostream>

int main() {
  std:: // <-- this should complete
}

完了はコンパイラで行われるため、実際にはヘッダーを含める必要があることに注意してください。これが機能しても、プロジェクトで「パターンが見つかりません」と表示され続ける場合は、clang ++でプロジェクトをコンパイルできない可能性があります。コードをコンパイルするときに-Iスイッチを使用しますか?それらをプロジェクトディレクトリの.clang_completeという名前のファイルに追加します。

私の場合、これはダウンロード可能な.vim/pluginファイルのみを含むclang_complete.vimフォルダーで正常に機能します。

$ find .vim
.vim
.vim/plugin
.vim/plugin/clang_complete.vim

...しかし、この問題レポートでは https://github.com/Rip-Rip/clang_complete/issues/39 そのファイル以上のものが必要になる可能性があることが示唆されています(追加のファイルはgitにあります)レポ)。

11
barbaz

私は同じ問題を抱えていて、.vimrcに以下を追加することで解決しました

let g:clang_user_options='|| exit 0'
26
Cepheid

以下は、clang version 3.0 (tags/RELEASE_30/final)を使用するCygwin、および Clangビルド手順 を使用するWindows、およびトランクからチェックアウトされたバージョン(通常は安定している)で動作するようになりました。読む)昨日(clang version 3.1 (trunk 154056))、Visual Studio 2010でビルド:

" clang_complete
let g:clang_complete_auto = 0
let g:clang_complete_copen = 1
" :h clang_complete-auto_user_options
if has('win32unix') " Cygwin
       " Using libclang requires a Vim built with +python
       let g:clang_use_library = 1
       " Mit der Option "gcc" kriege ich Fehler.
       " Remove "gcc" option as it causes errors.
       let g:clang_auto_user_options='path, .clang_complete'
elseif has('win32') " Windows
       let g:clang_auto_user_options='path, .clang_complete'
       let g:clang_use_library = 1
       let g:clang_library_path='D:\Sourcen\LLVM\build\bin\Debug'
endif

Windowsバージョンでは、散発的なアサーションエラーが発生する可能性がありますが、Cygwinバージョンとまったく同じではありませんが、正常に機能することに注意してください。 MSVCとGCCのヘッダーファイルの使用に関係していると思います。

Cygwinバージョンには最初のerror: release unlocked lockがありますが、それは関係なく機能します。

4
Lumi

コマンドラインでClangを明示的に呼び出して、Vimの外部でコードをコンパイルしようとしましたか?

コードで同じ問題が発生しましたが、MPIライブラリ(mpich2)を使用しているため、Clangがコードをコンパイルできませんでした。同様の問題が原因でClangが失敗している可能性があります。あなたの場合?私の場合、MPI依存関係を削除すると、たとえば次のようにすべてが正常に機能します。

#include <iostream>
#include <string>

int main() {
    std::string myString("test string");
    std::cout << myString.size() << std::endl; // After typing the dot, I get a list of std::string methods
}

ちなみに、私はまだMPIコードでclang_completeを見逃しています。誰かがこれに対する解決策を見つけましたか?

1
Dragos

Vimを設定するには、.vimrcファイルを検索または作成する必要があります。

$ vim〜/.vimrc

次に、次のように入力します。

let g:clang_complete_copen = 1
0
etaty