Pomoc W Konfiguracji Vima Dla C++
Chciałbym, aby vim był moim edytorem c++. Mam bardzo małe doświadczenie w pracy z nim i potrzebujesz pomocy w skonfigurowaniu Vima do pracy z c++. Potrzebuję takich funkcji jak
- code-complete (dla stl i dla moich klas)
- przełączanie pomiędzy .cc i .pliki h
- może być jeszcze kilka sztuczek, które ty, Guru c++ i vim, masz.
Może mógłbyś podać jakieś konfiguracje (z wyjaśnieniami), lub linki do tutoriali, wtyczek, z których mógłbym skorzystać?
3 answers
- Code complete: Omni completion or Clang autocomplete or YouCompleteMe
- sprawdzanie składni w czasie Rzeczywistym: Syntastic
- przełączanie pomiędzy plikiem źródłowym i nagłówkowym: Wtyczka
- Snippets: Snipmate lub UltiSnip
- Wyszukiwanie odniesień do zmiennych, funkcji, klas itp.: Cscope
- Przejdź do definicji: Ctags lub części YouCompleteMe wymienione powyżej
- narzędzia do refaktoryzacji: Refaktor, LH-refactor
- przydatne obiekty tekstowe: obiekt tekstowy Arg i obiekt tekstowy klasy
- kategoria C++ w Vim Tips wiki
- wtyczka C/C++ Luca Hermitte
- nie specyficzne dla C++, ale polecam również FuzzyFinderlub Command-Tlub Unite do nawigacji plików. W przypadku obu z nich nie potrzebujesz nawet kart (które nie skalują się dla 10 + plików) do zarządzania projektem.
- Class navigation: Taglist or Tagbar
Edycja: aktualizacja na Lipiec 2013
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-16 17:22:21
Używam vim
jako mojego edytora C++, jednak nie używam wielu "egzotycznych" rzeczy.
- jeśli chodzi o dopełnienie, używam kontekstowych
^P
i^N
. -
Mam kilka skrótów zdefiniowanych przez użytkownika dla mojego C++, na przykład:
abbreviate bptr boost::shared_ptr abbreviate cstr const std::string &
-
Mam kilka funkcji do "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 nie mógłbym żyć, jest Command-T (która wymaga Rubiego wsparcie)
- dla łatwego
.cc
do.h
przełączania, możesz wypróbować ten plugin
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-21 12:46:35
NERDTree http://www.vim.org/scripts/script.php?script_id=1658
Exuberant ctags (vim obsługuje już natywnie skróty klawiszowe) http://ctags.sourceforge.net/
Taglist: http://vim-taglist.sourceforge.net/
Snipmate: http://www.vim.org/scripts/script.php?script_id=2540
Nie robię omnicompletion tylko zwykłe ^n ^ P rzeczy, ale jest mnóstwo zasobów do wygooglowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-21 14:17:57