LINUX.ORG.RU

vim для C++

 , , , ,


1

7

Собственно, что можно подкрутить, чтоб инструмент был поудобнее, особенно интересует автодополнение имён хидеров (в том числе из стандартных путей, а не только из каталога с теми сорцами, с которыми я вожусь), а также интересует автодополнение методов из поключенных библиотек, т.е. к примеру, если я создал объект типа Gtk::Label some_label (пусть я объявил его в хидере), то в cpp файле, к которому относится хидер, хочется, чтоб при обращении some_label.(тут или далее по мере набора нажать какую-нибудь горячую клавишу/сочетание клавиш), появились бы варианты методов. И ещё, использую TagList, нет ли возможности сохранять открытые файлы, т.е., к примеру, у меня были открыты 5 файлов, я сохранил их, закрыл vim, а при повторном открытии (пускай они хоть в отдельный файл сохраняются списком) я мог бы без проблем возобновить с ними работу, не открывая их все вручную заново.

ЗЫ

Если маны и прочую документацию не дочитал, просьба не пинать сильно, так как их про vim и его расширения очень много, время требуется, да и не все удобные решения там будут описаны, а уж попытка прочитать про все расширения вима и вовсе кажется безумной, ведь их количество огромно. Интересует больше, кто чем в vim пользуется (расширения/настройки) и кому что в нём нравится/неудобно, emacs и gvim чур не предлагать.

★★★★★

C++
автодополнение имён хидеров (в том числе из стандартных путей, а не только из каталога с теми сорцами, с которыми я вожусь), а также интересует автодополнение методов из поключенных библиотек

https://github.com/Shougo/neocomplete.vim или более мощный, но тормозной и сложный https://github.com/Valloric/YouCompleteMe

science ★★☆
()
Последнее исправление: science (всего исправлений: 2)

у меня были открыты 5 файлов, я сохранил их, закрыл vim, а при повторном открытии (пускай они хоть в отдельный файл сохраняются списком) я мог бы без проблем возобновить с ними работу, не открывая их все вручную заново.

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

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

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

В общем если первое, то vim-session (обрати внимание, что ему нужен vim-misc), если второе, то vim-startify.

science ★★☆
()

Использую youcompleteme, но в последние месяцы он превращается в тормозного и глюкавого монстра. До этого использовал clang_complete.

andreyu ★★★★★
()

youcompleteme, лучше для автодополнения (в т.ч. и имен хедеров) и diagnostics не найдешь.

Ну вот часть моих плагинов: unite, airline, ctrlp, signify, fugitive, nerdtree, ag, multiple-cursors, ycm.

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

Как ctags. На одном уровне.

Ясно, остаюсь с ycm.

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

Например, я использую его NeoBundle.

Меня устраивает Vundle. Чем NeoBundle лучше, кроме многопоточности, которая нужна при редких обновлениях плагинов?

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

Ничего выдающегося. Хотя трудно сравнивать, я сразу как-то стал его использовать, так что всех возможностей Vundle могу не знать. Дело привычки.

maverik ★★
()

нет ли возможности сохранять открытые файлы, т.е., к примеру, у меня были открыты 5 файлов, я сохранил их, закрыл vim, а при повторном открытии (пускай они хоть в отдельный файл сохраняются списком) я мог бы без проблем возобновить с ними работу, не открывая их все вручную заново.

:mksession session.vim

Сохраняет все открытые окна и табы.

Для возобновления сессии:

vim -S session.vim

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

Если добавить интеграцию https://github.com/osyo-manga/vim-marching от другого японца + https://github.com/Shougo/vimproc.vim - и настроить, почитав например neocomplete or YouCompleteMe , можно достичь неплохого, в сравнении с YCM результата.

Конкретно, Шуго (которому можно верить), отвечает на вопрос, что может neocomplete, чего не может YouCompleteMe (5 месяцев назад):

    Full source integration(YCM can call one source only).
    Customization(filters, options,...).
    Completion learning.
    Include completion.

Я не работаю часто с С/C++ (только элементарщина), поэтому на личном опыте рекомендовать не могу (использую для ruby, erlang, веба).

Кроме того, интеграция с vimshell (не путать с xolox'овским vim-shell) добавляет профита.

Стоит попробовать.

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

не спорю. просто было в закладках. давно пользуюсь на emacs'ом

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

Include completion.

У меня YCM умеет комплитить пути везде.

p.s. С vim-marching и neocomplete.vim у меня не срослось. Тормозит оно не меньше даже на свежезапущенном vim, дефольтная настройка попапа мне не понравилась (как ее сменить я не нашел). Допускаю, что виной всему мои кривые руки и лень. Посему пока буду терпеть глюки и тормоза YCM. Он хотя бы у меня настроен так, как нужно мне.

andreyu ★★★★★
()

Для автодополнения include использую vim-inccomplete (да, сам написал, когда не нашёл такого; так что может уже и хуже позже появившихся альтернатив).

Для обычного автодополнения и поиска объявлений символов, всё тот же clang_complete, так как преимуществ у YCM или Netcomplete перед ним для моих нужд нет.

Ещё можно глянуть на vim-fswitch и vim-protodef.

xaizek ★★★★★
()

автодополнение имён хидеров

Инкрементирую neocomplete. Очень приятная штука.

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