В частности, отображение списков инициализации действительно плохо:
vector<int> v({1,2,3});
выделит фигурные скобки красным цветом (обозначая ошибку).
В частности, отображение списков инициализации действительно плохо:
vector<int> v({1,2,3});
выделит фигурные скобки красным цветом (обозначая ошибку).
Теперь существует С++ 11 script из http://www.vim.org/scripts/script.php?script_id=3797, которые больше не отмечают скобки внутри скобок как ошибку.
В качестве альтернативы вы можете использовать
let c_no_curly_error=1
в вашем файле .vimrc
, чтобы vim не отмечал {}
как ошибку в ()
.
Если вы используете Syntastic, добавьте это в свой .vimrc (или .vimrc.local).
let g:syntastic_cpp_compiler_options = ' -std=c++11'
Syntastic показывает ошибки для кода, написанного на нескольких языках. На каждом языке есть "checker", который является оболочкой для выполнения внешней программы. Внешняя программа для проверки С++ - g++. Контроллер С++ может передавать параметры компилятора в g++ и может быть настроен.
https://github.com/scrooloose/syntastic/wiki/C--:---gcc
Если вы хотите использовать clang++, вы можете использовать эти параметры
let g:syntastic_cpp_compiler = 'clang++'
let g:syntastic_cpp_compiler_options = ' -std=c++11 -stdlib=libc++'
используйте стандартную инициализацию вместо старого() конструктора
вектор v {1,2,3};
Насколько я знаю, для этого есть работа, см. здесь в списке писем vim_dev.
Улучшен патч для поддержки С++ 11 был отправлен в список рассылки: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/ug_wmWQqyGU
Вы также можете настроить это в локальном синтаксическом файле конфигурации.
Отбросьте файл .syntastic_cpp_config
в корневой каталог проекта и дайте ему аргументы компилятора по одному в строке (в качестве примера я также включил пути для библиотеки Loki):
-std=c++11
-Ilib/loki/include
-Ilib/loki_book/include
изменить флаги
flags = [
'-std=c++11',
'-O0',
'-Werror',
'-Weverything',
'-Wno-documentation',
'-Wno-deprecated-declarations',
'-Wno-disabled-macro-expansion',
'-Wno-float-equal',
'-Wno-c++98-compat',
'-Wno-c++98-compat-pedantic',
'-Wno-global-constructors',
'-Wno-exit-time-destructors',
'-Wno-missing-prototypes',
'-Wno-padded',
'-Wno-old-style-cast',
'-Wno-weak-vtables',
'-x',
'c++',
'-I',
'.',
'-isystem',
'/usr/include/',
]
Я искал другие предложения о синтаксическом файле С++ 11 VIM, и они старые и не поддерживаются. В любом случае, последние дистрибутивы Vim уже имеют хорошие синтаксические файлы. Иногда они обновляются, и официальный источник синтаксических файлов находится здесь: https://github.com/vim-jp/vim-cpp