Konfiguracja Vima dla C ++

118

Chciałbym uczynić vim moim edytorem C ++. Mam bardzo małe doświadczenie w pracy z nim i potrzebuję pomocy w skonfigurowaniu vima do pracy z C ++. Potrzebuję takich funkcji jak

  • code-complete (dla stl i dla moich klas)
  • przełączanie między plikami .cc i .h
  • może być jeszcze kilka sztuczek, które macie guru C ++ i vimów.

Może mógłbyś podać kilka konfiguracji (z wyjaśnieniami) lub linki do samouczków, wtyczek, z których mógłbym skorzystać?

Draco Ater
źródło
7
+1 za czysty masochizm związany z chęcią używania vima jako swojego IDE :) vim ma swoje zastosowania (szczególnie do edycji plików zdalnie), ale każdy, kto faktycznie chce go użyć do edycji kodu, ma w mojej opinii bezczelność.
Stuart Golodetz
38
@sgolodetz: W takim razie jest sporo ludzi z bezczelnością.
Cascabel
1
@Jefromi: Tak, zdaję sobie z tego sprawę :) Zawsze jednak wydawało mi się to masochizmem ... w pewnym stopniu godnym podziwu.
Stuart Golodetz
4
Z perspektywy czasu wydaje mi się, że umieszczenie odpowiednika „Nie mam wątpliwości co do vima” w poście, który może być często odwiedzany przez wielu entuzjastów vimów, mogło być trochę prowokacyjne - miało to być język-język raczej policzek komentarz niż początek kłótni.
Stuart Golodetz
1
Udzieliłem tej odpowiedzi, która początkowo była ograniczona do programowania w C. Jednak wszystko, co powiedziałem, jest nadal aktualne w C ++.
Luc Hermitte

Odpowiedzi:

142

Edycja: aktualizacja od lipca 2013 r

Thanh DK
źródło
Naprawiłem łącze do mojego pakietu ftplugins w C i C ++. Dzięki za "reklamowanie" :)
Luc Hermitte
Mogę również polecić wtyczkę FSwitch zamiast wtyczki A.
W55tKQbuRu28Q4xv
1
Luca lhCpp jest niekompatybilne z vundle (myślę, że z powodu repozytorium svn) i nie lubię procesu instalacji - polecam sprawdzić github.com/Raimondi/delimitMate
netpoetica
2
Daj +1 bardzo kompletnej (i aktualnej) odpowiedzi, która na to zasługuje, miło jest widzieć, że niektórzy bardziej samotni członkowie publikują te wspaniałe odpowiedzi. To, jak dokładna jest twoja odpowiedź, jest całkiem pomocne, a jednocześnie nie przytłaczające, nawet dla nowego użytkownika vima.
osirisgothra
1
A co z vim-rtagami? Jest dobry do nawigacji po kodzie C ++, ma funkcję zmiany nazwy.
P4C
8

Używam vimjako mojego edytora C ++, ale nie używam wielu „egzotycznych” rzeczy.

  • Jeśli chodzi o ukończenie, używam bezkontekstowego ^Pi ^N.
  • Mam kilka zdefiniowanych przez użytkownika skrótów do mojego użytku w C ++, na przykład:

    abbreviate bptr boost::shared_ptr
    abbreviate cstr const std::string &
  • Mam kilka funkcji dla „fragmentów kodu”, takich jak rzeczy, na przykład:

    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
  • Jedyną wtyczką, bez której naprawdę nie mogłem żyć, jest Command-T (która wymaga obsługi ruby)

  • Dla łatwy .ccdo .hprzełączania, można spróbować tej wtyczki
przestępczość lodowa
źródło