Лязг для Vim - PullRequest
       14

Лязг для Vim

18 голосов
/ 13 апреля 2011

Я скопировал clang_complete.vim в плагин, но когда я набрал . после некоторой переменной, он говорит:

шаблон не найден

Я искал эту проблемуи кто-то сказал, что я должен настроить g:clang_complete_auto: и g:clang_complete_copen:.Как я могу это сделать?

Ответы [ 5 ]

26 голосов
/ 17 апреля 2011

У меня была та же проблема, и я решил ее, добавив следующее в мой .vimrc

let g:clang_user_options='|| exit 0'
11 голосов
/ 14 апреля 2011

Попробуйте открыть файл образца

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-репо).

4 голосов
/ 06 апреля 2012

Следующее заставило меня работать на Cygwin с использованием clang version 3.0 (tags/RELEASE_30/final), а также на Windows с использованием инструкции по сборке Clang и версии, извлеченной из trunk (обычно стабильной, как я читал) вчера (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, но она работает независимо.

1 голос
/ 17 апреля 2011

Вы пытались скомпилировать код вне Vim, явно вызывая Clang в командной строке?

У меня была та же проблема с моим кодом, но оказалось, что Clang не смог скомпилировать мой код из-за использования библиотек MPI (mpich2). Может быть, похожая проблема вызывает сбой 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
}

Кстати, я все еще скучаю по clang_complete в своем коде MPI. Кто-нибудь нашел решение для этого?

0 голосов
/ 13 апреля 2011

Чтобы настроить Vim, вы должны найти или создать файл .vimrc:

$ vim ~ / .vimrc

Затем введите:

let g:clang_complete_copen = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...