[#] Об удобной навигации и отладке C++ кода в Vim
habrabot(difrex,1) — All
2014-12-13 13:00:03


Компания, где я работаю, разрабатывает программное обеспечение на C++ под Linux. Долгое время мы использовали Qt Creator, с редкими ребятами работающими из Emacs и Vim. Когда я сам попытался пересесть на Vim, я понял, что ситуация с плагинами для разработки на С++ очень не простая. Поработав немного с CTags, я быстро понял, что без напильника работать в Vim будет очень сложно. К сожалению, с ростом опыта работы с Vim редактор в Qt Creator в режиме эмуляции устраивал меня все меньше, и в какой-то момент я решил потратить немного времени и разобраться, как же сделать из Vim нормальную среду. Я очертил для себя четыре вещи, которые я бы хотел от среды разработки, и которых мне бы хватило в Vim, чтобы полностью на него перейти: 1. Автодополнение 2. Навигация по коду 3. Отладка прямо из среды 4. Интеграция с Git (в частности Blame прямо в редакторе, и Git Grep) Автодополнение в Vim — это решенная проблема, и название у решения [YouCompleteMe][1]. Это очень качественный плагин, который реализует автодополнение для большого количества языков программирования, в частности Python и C++. Ходят слухи, что внутри Google YouCompleteMe решает и вторую проблему с навигацией кода, но использует для этого внутренные инструменты гугла для индексирования. Интеграция с Git в какой-то степени решена с помощью [vim-fugitive][2]. Это не такая комплексная интеграция, как бывает у Jet Brains, или в Visual Studio, но сравнимая с тем, что предлагает Qt Creator. Те два сценария, которые нужны были мне: blame и grep — работают хорошо. Отладка и навигация были проблемами, решенными гораздо хуже. В этой статье я расскажу о плагине, который мы написали для навигации по С++ коду. В конце статьи я также расскажу о том, как мы для себя решили проблему с интегрированным отладчиком. [Читать дальше →][3]

[1]: https://github.com/Valloric/YouCompleteMe
[2]: https://github.com/tpope/vim-fugitive
[3]: http://habrahabr.ru/post/245681/#habracut