Esiste un file di syntax C ++ 11 per vim?

In particolare, la visualizzazione degli elenchi di inizializzazione è davvero pessima:

vector v({1,2,3}); 

evidenzierà le parentesi graffe in rosso (indicando un errore).

Esiste ora uno script C ++ 11 da http://www.vim.org/scripts/script.php?script_id=3797 , che non contrassegna più le parentesi tra parentesi come errore.

In alternativa, puoi usare

 let c_no_curly_error=1 

nel tuo file .vimrc modo che vim non tagga {} come errore in () .

Se usi Syntastic , aggiungilo al tuo .vimrc (o .vimrc.local).

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

Syntastic mostra errori per codice scritto in più lingue. Ogni lingua ha un “correttore” che è un wrapper per eseguire un programma esterno. Il programma esterno per il controllo c ++ è g ++. Il correttore c ++ può passare le opzioni del compilatore a g ++ e può essere configurato.

https://github.com/scrooloose/syntastic/wiki/C–:—gcc

Se vuoi usare clang ++, puoi usare queste opzioni

 let g:syntastic_cpp_compiler = 'clang++' let g:syntastic_cpp_compiler_options = ' -std=c++11 -stdlib=libc++' 

utilizzare l’inizializzazione uniforms invece del vecchio () costruttore

vettore v {1,2,3};

Per quanto ne so, c’è un work in progress per questo, vedi qui nella mail list vim_dev.

Una patch migliorata per il supporto C ++ 11 è stata inviata alla mailing list: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/ug_wmWQqyGU

È inoltre ansible configurarlo in un file di configurazione syntastic locale.

.syntastic_cpp_config un file .syntastic_cpp_config nella root del progetto e assegnargli gli argomenti del compilatore uno per riga (ho anche incluso i percorsi per la libreria Loki come esempio):

 -std=c++11 -Ilib/loki/include -Ilib/loki_book/include 

Se usi YouCompleteMe, puoi cambiare ‘.ycm_extra_conf.py’.come questo: (percorso file ~ / .vim / bundle / YouCompleteMe / third_party / ycmd / cpp / ycm / .ycm_extra_conf.py);

cambia solo le bandiere

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

]

Ho cercato le altre proposte sul file di syntax C ++ 11 di VIM e sono vecchie e non mantenute. Comunque, le recenti distribuzioni di Vim hanno già buoni file di syntax. A volte vengono aggiornati e la fonte ufficiale dei file di syntax è qui: https://github.com/vim-jp/vim-cpp