LINUX.ORG.RU

vim+youcompleteme

 , , ,


0

2

Люди добрые, помогите новичку. Пользуюсь ОС Calculate (Gentoo). Осваиваю текстовый редактор vim:

emerge -av app-editors/vim
Установилась версия 7.4.273. Установил плагин YouCompleteMe:
emerge -av app-vim/youcompleteme
Установилась версия 20130910. Дла установки этого плагина на я не пользовался Vandle (т.к. я не знаю как его поставить и с чем его есть). Просто установил из portage. При открытии с помощью vim файлов с расширение h, c, cpp высвечивается ошибка:
No .ycm_extra_conf.py file detected, so no compile flags are available. Thus no semantic support for C/C++/ObjC/ObjC++. Go READ THE DOCS *NOW*, DON'T file a b
ug report.
Я нашел файл .ycm_extra_conf.py на странице разработчика данного плугина тут Я его просто скопировал и положил в свой домашний каталог рядом с .vimrc. Когда я открыл cpp файл с помощью vim, YouCopleteMe обнаружил файл .ycm_extra_conf.py и дал мне запрос на прочтения данных из этого файла, я разрешил ему это сделать, и тут пошли всякие ошибки, одна за другой. Скрин ошибок вот. Люди добрые помогите подвязать C++ к YouCompleteMe. я не очень волоку во всём этом, я честно целую неделю читал информацию по этому поводу. И у меня ничего не вышло.

Вам не нужен вим, если вы за неделю не осилили простейшую настройку вима, то это просто не для вас(пока?)
Попробуйте Sublime Text.

LiBer ★★★
()

Очень калько-/гентоспецифичный вопрос. Убери эти теги, они здесь ни к чему!

No .ycm_extra_conf.py file detected, so no compile flags are available.

Что в этом не понятного? Подозреваю, что vim не подгрузил нужные файлы т.к. они не были сорцнуты в или не корректен путь к. Тут или ручками, или vundle. Второй вариант избавляет от геморроя при обновлении, а vundle умеет обновлять плагины самостоятельно, насколько мне известно.

Так подключено у меня:

set nocompatible
set rtp+=/mnt/userdata/software/configs/vim/plugins/Vundle.vim
call vundle#begin('/mnt/userdata/software/configs/vim/plugins/')
	Plugin 'gmarik/Vundle.vim'
	Plugin 'scrooloose/nerdtree'
	Plugin 'aperezdc/vim-template'
call vundle#end()
:h vundle расскажет всё остальное.

r3lgar ★★★★★
()

Во-первых, ставь всегда свежайший Vim, в портаже он сейчас 7.4.622, а ты поставил на 349 патчей (исправлений багов и прочих фиксов, лол) меньше. Размаскируй пакет вима, оно стоит того.

Во-вторых, это действительно гон ставить YCM 2х годичной тухлости, ведь его обновили в последний раз 6 дней назад и обновляют регулярно.

В третьих, вместо Vundle лучше использовать более лучший и быстрый менеджер плагинов vim-plug, установка которого это всего лишь выполнение команды в шеле:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
и добавление региона в ~/.vimrc, где будут указанны плагины:
call plug#begin('~/.vim/plugged')


call plug#end()
между этими двумя строками просто указываются плагины, которые vim-plug будет устанавливать и обновлять.

Что касается YCM, то его установка и автоматический build/компиляция после обновления плагина (в его репе) описаны на странице репы vim-plug:

call plug#begin('~/.vim/plugged')

Plug 'Valloric/YouCompleteMe', { 'do': './install.sh' }

call plug#end()

redhat
()
Ответ на: комментарий от LiBer

Так и скажи, что не знаешь, как настроить YouCompleteMe из коробки. Я ведь спрашивал как установленный из portage плагин настроить. В обход vundle и тому подобных плагинов. А вижу только самомнение. Зачем ты отписался в этом топике? Если знаешь, помоги.Если не хочешь помогать, зачем пишешь тогда?

druidcat
() автор топика

Скрин ошибок вот.

Более паршивого места для картинок вы не смогли найти? Я так и не увидел, что там нарисовано.

andreyu ★★★★★
()
Ответ на: комментарий от LiBer

Вам не нужен вим, если вы за неделю не осилили простейшую настройку вима, то это просто не для вас(пока?)

При чем тут вим? ТС про настройку ycm вопрошает.

Попробуйте Sublime Text.

Там полнонценный комплитер настраивать не нужно? Он сам узнает о вашем проекте?

andreyu ★★★★★
()

emerge -av app-vim/youcompleteme

Не делайте так больше. Воспользуйтесь менеджером плагинов для vim. Из толковых neobundle и vim-plug.

Я собираю (команда для менеджера плагина) так:

./install.sh --clang-completer --system-libclang
andreyu ★★★★★
()
Ответ на: комментарий от druidcat

Просто первое что узнаешь о виме когда листаешь маны и интернеты, это то что есть прекрасные плагин менеджеры(о которых осведомлены разрабы плагинов, так что косяков не бывает вроде, в отличие от системных менеджеров пакетов), извиняюсь за деструктив, @redhat уже ответил как подобает в приличном обществе, но всё же было бы не плохо перед тем как задавать вопросы гуглить всю эту инфу, даже тут на лоре тысячи раз обсасывали все эти темы.

LiBer ★★★
()
Ответ на: комментарий от andreyu

Только для C/C++ YCM используешь? Не пробовал vim-marching, который только для этого и предназначен?

Несравненно более легкая альтернатива, интересно узнать мнение.

Поскольку это (osyo-manga) приятель Shougo (автор neocomplete), то он обещает запилить интеграцию в neocomplete, если это произойдет, то YCM можно будет смело выбрасывать.

redhat
()

Я бы сказал rtfm, да что там, так и скажу:

:help youcompleteme

pon4ik ★★★★★
()
Ответ на: комментарий от redhat

neocomplete, когда я его последний раз пробовал, хреново дружил со сторонними omni-комплитерами. Я бы даже сказал что они дрались и победа зависила от погоды на марсе и настроения Васиной мымы.

pon4ik ★★★★★
()
Ответ на: комментарий от pon4ik

Возможно снэпшот был такой на тот момент, а после одного коммита вернулось к обычной, нормальной, удовлетворительной работе?

В любом случае, сейчас работает хорошо, могу судить по tmux-complete, например.

redhat
()
Ответ на: комментарий от redhat

А я кажется вспомнил - оно не дружило с clang_complete. В итоге я где то раскопал, что косячит clagn_complete, но выпилил оба в пользу ycm :)

pon4ik ★★★★★
()
Ответ на: комментарий от pon4ik

так там (neocomplete) и не заявляется поддержка, есть neocomplete-clang, но он почилвбозе 2 года назад.

я вот и спрашивал, пробовали ли vim-marching, который только шланга и предназначен, как альтернатива жирному тормозяще-пердящему комбайну YCM.

в общем ты отвечал в первый раз на пост, который об этом и говорит, тощемта.

redhat
()
Ответ на: комментарий от redhat

Clang を使用して非同期で C++ のコード補完を行うためのプラグインです。

Очень информативно :D

Не пока не пробовал, чем оно профитевеё ycm? Кроме тормозов, ибо у мну особо не проявлялось, там где может тормозить ycm, я всё равно юзаю qtc :)

Оно же только комплит умеет?

pon4ik ★★★★★
()
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от redhat

Я поставил vim-plug. Для установки YouCompleteMe использовал.

call plug#begin('~/.vim/plugged')

Plug 'Valloric/YouCompleteMe', { 'do': './install.sh --clang-completer --system-libclang' }

call plug#end()

В vim запустил plug

:PlugInstall
Подождал пару минут, пока всё установится. Перезапускаю vim и вижу ошибку:
YouCompleteMe unavailable: requires Vim compiled with Python 2.x support
Что не так с Python? У меня установлен:
dev-lang/python-2.7.9-r1
Других версий в слотах не стоит. Если нужно поставить другую версию Python, то какую стабильную, чтоб заработал YouCompleteMe?

druidcat
() автор топика
Ответ на: комментарий от druidcat

сам вим (app-editors/vim) должен быть собран с юзом use-флаго python, а еще лучше вот так:

X acl cscope gpm lua luajit nls perl python ruby tcl vim-pager

echo ">=app-editors/vim-7.3 X acl nls python cscope gpm perl ruby vim-pager lua luajit tcl" >> /etc/portage/package.use/custom

или где ты там хранишь свои юзы.

redhat
()
Ответ на: комментарий от pon4ik

дело в том, что я не работаю с компилируемыми языками и не могу заценить разницу между marching и YCM в контексте работы со шлангом, но поскольку marching пилится представителем японского вим-комьюнити, а такие челы с коротого как Shougo, kana, osyo-manga, haya14busa и прочие кавайные куны с vim.jp — херни не пилят, то я предполагаю, что он знает про недостатки YCM и решил их в marching.

redhat
()
Ответ на: комментарий от druidcat

сразу собирай с ruby (vim-plug начинает работать в N раз быстрее, где N — количество плагинов, потому что устанавливает/обновляет одновременно все, а не по очереди), с lua и luajit, потому что от него зависят плагины, которые ты скорее всего будешь использоваться в будущем (типа unite, neocomplete, vimfiler и другие), vim-pager — чтобы маны читать сразу в виме, полностью заменить less и так далее по списку. Они же не влияют на скорость самого вима, так что можно смело ставить.

redhat
()
Ответ на: комментарий от redhat

кавай ето хорошо, можно на выходных потыкать, но я последнее время не сильно парюсь комплитом, больше всего мне не хватает find usages, но их нигде толком нет.

pon4ik ★★★★★
()
Ответ на: комментарий от redhat

Super-fast parallel installation/update (with +python or +ruby)

Зачем в системе ещё и руби, когда это делает питон (который есть почти в любой системе, в отличие от)?

anonymous
()
Ответ на: комментарий от anonymous

для руби-разработки, например, лол. А что касается vim-plug, то я не знал, что кореец впилил туда также питон для этого, когда я начинал пользоваться vim-plug была поддержка только руби для этого, а после настройки новостей уже не читаю.

redhat
()
Ответ на: комментарий от redhat

Мне так не удобно тебя тревожить. Все заработало. Когда я все установил. Я нашел файл .ycm_extra_conf.py в:

~/.vim/plugged/YouCompleteMe/third_party/ycmd/cpp/ycm
Скопировал его в домашний каталог, и при каждом запуске vim при открытии cpp программа спрашивает о том, чтоб обработать файл .ycm_extra_conf.py. Но зато YouCompleteMe заработал на полную катушку. Если я его не переложу в корень домашней папки, vim постоянно ругается, что нет файла .ycm_extra_conf.py как в самом начале моего поста. И еще одна беда. Я пользуюсь QT, и все стандартные классы QT (например QString) подсвечиваются как ошибки. Как добавить еще классы QT в YouCompleteMe? PS: Прошу прощеия за беспокойство и за реагиование на посты. Мой маленький сын просто не дает сесть за комп. :)

druidcat
() автор топика
Ответ на: комментарий от druidcat

Я вот не в курсе, потому, что не использую YCM, т.к. не работаю с компилируемыми языками, мне для ruby/js и веба хватает с головой neocomplete.

Так что не подскажу, кури доки в репе YCM на гитхабе.

redhat
()
Ответ на: комментарий от druidcat

Редактируйте файл .ycm_extra_conf.py. В нем прописываются флаги компилятора, подключаемые библиотеки. Поищите в интернете по запросу ycm qt примеры конфигурации.

t1nman
()

Для начала стяни YCM из гитхаба, видно же, что портеж поставил старьё.

Если ошибки продолжатся - вчитайся в свой конфиг ycm и внеси нужные правки. Конфиг не может быть универсальным, для каждого проекта свои настройки нужны.

Krieger_Od ★★
()
Ответ на: комментарий от t1nman

Нашел. Вот ссылка по настройке .ycm_extra_conf.py для QT. Я там немного подправил под свой проект, и все заработало. Всем спасибо за помощь. Спасибо, Спасибо, Спасибо! :)

druidcat
() автор топика
Ответ на: комментарий от redhat

Только для C/C++ YCM используешь?

Семантический комплитер для c/c++ и как комплитер а-ля supertab.

Не пробовал vim-marching, который только для этого и предназначен?

Пробовал, но совершенно не помню почему отказался от него.

Несравненно более легкая альтернатива, интересно узнать мнение.

Сча попробую еще разок...

Поскольку это (osyo-manga) приятель Shougo (автор neocomplete), то он обещает запилить интеграцию в neocomplete,

Что за интеграция? И с neocomplete у меня тоже не срослось. Хотя использую его под виндой вместо ycm.

если это произойдет, то YCM можно будет смело выбрасывать.

Почему? У меня только одна претензия к ycm - он прожорливый монстр. И очень медленно стартует если используется hdd, а не ssd.

andreyu ★★★★★
()
Ответ на: комментарий от druidcat

Что не так с Python?

С пистоном все так. А вот вим собран без поддержки python. Просто пересоберите vim с нужным use-флагом.

andreyu ★★★★★
()
Ответ на: комментарий от druidcat

Я пользуюсь QT, и все стандартные классы QT (например QString) подсвечиваются как ошибки. Как добавить еще классы QT в YouCompleteMe?

1. Qt. Qt. Qt. QT - это quick time.

2. Пропишите пути к нужным библиотекам в конфиге ycm. У меня есть общесистемный конфиг и конфиг для каждого проекта, которому не хватает дефольтного.

А вообще документация по ycm небольшая, прочесть ее не сложно.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Что за интеграция?

она уже есть, он просто не обновил readme:

" cooperate with neocomplete.vim

let g:marching_enable_neocomplete = 1
мачинг выплевывает всё, что дает ему clang в omnicomplete, а neocomplete оттуда кормится.

Почему?

neocomplete работает быстрее сам по себе, идёт работа по поддержке не en_us комплита, работает не на питоне, разраб более доброжелательный и гораздо охотнее принимает PR или пропозиции. Обфоркаться YCM никто не мешает, но всё же приятнее, когда все комьюнити работает над инструментом, а не тиран, который имеет своё очень важное мнение.

redhat
()
Ответ на: комментарий от andreyu

Чем он лучше manpageview?

не знал о существовании последнего, посмотрю.

redhat
()
Ответ на: комментарий от redhat

vim-marching

Попробовал еще разок - не возбудил он меня.

andreyu ★★★★★
()
Ответ на: комментарий от redhat

она уже есть, он просто не обновил readme:

То ридми, что читал я описывает способ интеграции. Но что это дает я не понял.

мачинг выплевывает всё, что дает ему clang в omnicomplete, а neocomplete оттуда кормится.

Ясно. Может через месяц-другой попробую снова. Или на винде попробую прикрутить.

andreyu ★★★★★
()
Ответ на: комментарий от redhat

Переходи на vim-plug, будь в тренде.

Какая разница какой плагиноманагер поставит мне три простых плагина?

Если он умеет проверять свои обновления и обновления плагинов, автоматически обновлять их и себя при старте вима раз в неделю и при этом не ЖРАТЬ ресурсы, то я, конечно, задумаюсь. Сейчас оно выглядит для меня как мена шила на мыло.

r3lgar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.