Разработка на С++ в VIM?

Я достаточно долгое время пытаюсь найти удобную для себя среду разработки для С++.

Требования к ней следующие:

— Целевая ОС — Ubuntu

— Редактор текста должен быть Vim

— Должна понимать достаточно сложные С++11 конструкции (лямбды, enum class, auto, constexpr ...)

— Если я нажимаю точку, или ищу что-то, задержка должна быть не заметна для глаза.

— Встроенный отладчик очень желателен


Что я пробовал:
Qt Creator с включенным FakeVim.

Этим я пользуюсь сейчас. Не нравится:

1. FakeVim очень слабенький, поправить в нем несколько строк можно, писать большое полотно кода сложно, потому что очень много комбинаций клавиш не работает. Нет EasyMotion

2. Некоторые C++11 вещи он пока не понимает

Нравится:

1. Очень быстрый поиск символов и автодополнение

2. Весьма удобная встроенная отладка

CDT + Eclim

Не нравится: поиск символов в эклипсе очень медленный — при нажатии на точку (даже без eclim) задерка в пол секунды.

Нравится: встроенная отладка

CTags

Не нравится:

1. Парсер по ощущениям сильно отстает и от Эклипса и от Qt Creator.

2. Отлаживать надо переключаться в Qt Creator, или использовать плагины для vim, подцепляющие GDB — к ним тоже есть претензии.

clang_complete и сопутствующие форки

Не нравится:

1. При нажатии на точку задержка до нескольких секунд

2. Если код не компилируется clang++, автодополнение не работает. Я использую gcc как основной компилятор, и постоянно поддерживать код компилируемым clang++ болезненно (в clang++ пока не все гладко с constexpr). Если сломать кусок кода, то автодополнение ломается. Иногда удобнее все разнести сначала, а потом медленно править — с clang_complete такой сценарий не работает.

3. Про отладку все как и с ctags


Самое простое решение, которое сейчас нарисовывается — это допилить FakeVim самому. Но прежде чем писать код, хочется узнать, что используют другие С++ разработчики, привыкшие к Vim. Может есть какая-то другая красивая среда разработки/плаигн к Vim, или я не правильно использую какой-то из перечисленных выше способов?
  • Вопрос задан
  • 8804 просмотра
Пригласить эксперта
Ответы на вопрос 2
@gribozavr
> При нажатии на точку задержка до нескольких секунд
Вы используете libclang режим clang_complete? В этом случае используются reparse*() API, которые автоматически строят PCH в памяти и репарсят только ваш код, а не все подключенные заголовки.

> в clang++ пока не все гладко с constexpr
Вы используете clang из SVN?
Ответ написан
BlackRaven86
@BlackRaven86
Программист
Рекомендую посмотреть KDevelop. Там очень хорошая подсветка синтаксиса и автодополнение для C/C++ и для Qt, плюс есть vi-режим.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы