Intereting Posts
CUDA – что, если я выберу слишком много блоков? Поиск кратчайшего контура в графике, который посещает X-узлы хотя бы один раз Анализатор химической формулы C ++ Будет ли компилятор оптимизирован, избегая внутреннего цикла? Почему линкер не может предотвратить фиаско порядка статической инициализации C ++? Лучшая библиотека матриц C ++ для разреженных унитарных матриц Использование алгоритма Евклида для поиска GCF (GCD) Умножение строки на int в c ++ Почему компоновщик C ++ допускает неопределенные функции? Как создать программу, которая может считывать все изображения в папке с помощью Boost и OpenCV? Пользовательская система / библиотека типа времени выполнения для C ++ Неоднородный контейнер шаблонов Variadic Рекурсивная вставка BST Оператор вызова функции C ++ с функцией в качестве аргумента шаблона Требуется ли dtor shared_ptr использовать «deleter»?

Справка по настройке Vim для C ++

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

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

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

  • Код завершен: завершение Omni или автозаполнение Clang или YouCompleteMe
  • Проверка синтаксиса в реальном времени: Syntastic
  • Переключение между исходным и заголовочным файлом: плагин
  • Фрагменты: Snipmate или UltiSnip
  • Поиск ссылок на переменные, функции, classы и т. Д .: Cscope
  • Перейдите к определению: Ctags или часть подкоманд YouCompleteMe, упомянутых выше
  • Рефакторинг: рефакторинг , lh-refactor
  • Полезные текстовые объекты: текстовый объект Arg и текстовый объект classа
  • Категория C ++ в Vim Tips wiki
  • Плагин Люка Хермита C / C ++
  • Не C ++, но я также рекомендую FuzzyFinder или Command-T или Unite для навигации по файлам. С помощью любого из них вам даже не нужны вкладки (которые не масштабируются для более 10 файлов) для управления вашим проектом.
  • Навигация по classу: Taglist или Tagbar

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

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

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

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

     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 вы можете попробовать этот плагин

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

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

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

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

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