Существует ли файл синтаксиса C ++ 11 для vim? - PullRequest
64 голосов
/ 04 июня 2010

В частности, отображение списков инициализации действительно плохое:

vector<int> v({1,2,3});

выделит фигурные скобки красным цветом (обозначает ошибку).

Ответы [ 9 ]

34 голосов
/ 26 января 2011

В качестве альтернативы вы можете использовать

let c_no_curly_error=1

в вашем .vimrc файле, чтобы vim не помечал {} как ошибку в ().

32 голосов
/ 17 декабря 2011

Теперь существует сценарий C ++ 11 из http://www.vim.org/scripts/script.php?script_id=3797,, который больше не помечает скобки в скобках как ошибку.

25 голосов
/ 20 ноября 2012

Если вы используете Syntastic , добавьте его в .vimrc (или .vimrc.local).

let g:syntastic_cpp_compiler_options = ' -std=c++11'

Syntastic показывает ошибки для кода, написанного на нескольких языках. У каждого языка есть «средство проверки», которое является оболочкой для выполнения внешней программы. Внешняя программа для проверки c ++ - g ++. Средство проверки c ++ может передавать параметры компилятора в 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++'
9 голосов
/ 01 мая 2011

использовать равномерную инициализацию вместо конструктора old ()

вектор v {1,2,3};

6 голосов
/ 08 июня 2010

Насколько я знаю, для этого идет работа, см. здесь в списке рассылки vim_dev.

4 голосов
/ 09 июня 2012

Улучшенный патч для поддержки C ++ 11 был отправлен в список рассылки: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/ug_wmWQqyGU

1 голос
/ 09 августа 2016

Если вы используете YouCompleteMe, вы можете изменить '.ycm_extra_conf.py'. Например: (путь к файлу ~ / .vim / bundle / YouCompleteMe / third_party / ycmd / cpp / ycm / .ycm_extra_conf.py);

только смена флагов

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/', 

]

1 голос
/ 07 мая 2014

Вы также можете настроить это в локальном синтетическом конфигурационном файле.

Удалите файл .syntastic_cpp_config в корневой каталог вашего проекта и передайте ему аргументы компилятора по одному на строку (в качестве примера я также включил пути для библиотеки Loki):

-std=c++11
-Ilib/loki/include
-Ilib/loki_book/include
0 голосов
/ 03 ноября 2015

Я искал другие предложения о файле синтаксиса C ++ 11 VIM, и они старые и не поддерживаются Как бы то ни было, последние дистрибутивы Vim уже имеют хорошие файлы синтаксиса. Иногда они обновляются, и официальный источник файлов синтаксиса находится здесь: https://github.com/vim-jp/vim-cpp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...