Настройка Vim для C ++

118

Я хотел бы сделать vim своим редактором на C ++. У меня очень мало опыта работы с ним, и мне нужна помощь в настройке vim для работы с C ++. Мне нужны такие функции как

  • полный код (для stl и для моих классов)
  • переключение между файлами .cc и .h
  • Возможно, у вас, гуру C ++ и vim, есть еще несколько уловок.

Может быть, вы могли бы предоставить некоторые конфигурации (с объяснениями) или ссылки на учебные пособия, плагины, которые я мог бы использовать?

Драко Атер
источник
7
+1 за явный мазохизм желания использовать vim в качестве IDE :) vim имеет свои применения (особенно для удаленного редактирования файлов, по моему опыту), но любой, кто действительно хочет использовать его для редактирования кода, на мой взгляд, наглость.
Стюарт Голодец
38
@sgolodetz: Значит, есть довольно много людей с наглостью.
Cascabel
1
@Jefromi: Ага, я понимаю это :) Мне это всегда казалось мазохизмом ... в некотором роде, немного замечательным образом.
Стюарт Голодец
4
Оглядываясь назад, я полагаю, что размещение эквивалента «Я немного сомневаюсь в vim» на посте, который, вероятно, будет посещаться большим количеством энтузиастов vim, могло быть немного провокационным - это должно было быть насмешкой. честный комментарий, а не начало спора.
Стюарт Голодец
1
Я дал этот ответ, который изначально ограничивался разработкой на C. Однако все, что я сказал, по-прежнему актуально для C ++.
Люк Эрмитт,

Ответы:

142

Изменить: обновлено по состоянию на июль 2013 г.

Thanh DK
источник
Я исправил ссылку на свой набор ftplugins C и C ++. Спасибо за «рекламу» :)
Люк Эрмитт
Также я могу порекомендовать плагин FSwitch вместо плагина A.
W55tKQbuRu28Q4xv
1
LhCpp Люка несовместим с vundle (я думаю, из-за svn repo), и мне лично не нравится процесс установки - рекомендую проверить github.com/Raimondi/delimitMate
netpoetica
2
+1 очень полный (и актуальный) ответ заслуживает этого, приятно видеть, что некоторые из более замкнутых участников публикуют эти замечательные ответы. Насколько подробен ваш ответ, это очень полезно, но в то же время не ошеломляет даже для нового пользователя vim.
osirisgothra
1
Как насчет vim-rtags? Хорошо подходит для навигации по коду C ++, имеет функцию переименования.
P4C
8

Я использую vimсвой редактор на C ++, но не использую много «экзотических» вещей.

  • Что касается завершения, я использую неконтекстные ^Pи ^N.
  • У меня есть несколько пользовательских сокращений для моего использования на C ++, например:

    abbreviate bptr boost::shared_ptr
    abbreviate cstr const std::string &
  • У меня есть несколько функций для "фрагментов кода", например:

    function! IncludeGuard()
      let basename = expand("%:t:r")
      let includeGuard = '__' . basename . '_h__'
      call append(0, "#ifndef " . includeGuard)
      call append(1, "#define " . includeGuard)
      call append(line("$"), "#endif /* !" . includeGuard . " */")
    endfunction
  • Единственный плагин, без которого я действительно не мог бы жить, это Command-T (который требует поддержки Ruby).

  • Для удобства .ccв .hпереключении, вы можете попробовать этот плагин
icecrime
источник
2

NERDTree http://www.vim.org/scripts/script.php?script_id=1658

Обильные ctags (vim уже изначально поддерживает горячие клавиши) http://ctags.sourceforge.net/

taglist: http://vim-taglist.sourceforge.net/

snipmate: http://www.vim.org/scripts/script.php?script_id=2540

Я не занимаюсь омникомплецией обычным способом ^ n ^ p, но есть много ресурсов для поиска в Google.

ThePosey
источник