En particulier, l'affichage des listes d'initialisation est vraiment mauvais:
vector<int> v({1,2,3});
mettra en évidence les accolades en rouge (indiquant une erreur).
Il existe maintenant un script C++ 11 de http://www.vim.org/scripts/script.php?script_id=3797 , qui ne marque plus les accolades entre parenthèses comme des erreurs.
Comme alternative, vous pouvez utiliser
let c_no_curly_error=1
dans votre fichier .vimrc
de sorte que vim ne balise pas {}
comme erreur dans ()
.
Si vous utilisez Syntastic , ajoutez ceci à votre .vimrc (ou .vimrc.local).
let g:syntastic_cpp_compiler_options = ' -std=c++11'
Syntastic affiche les erreurs pour le code écrit en plusieurs langues. Chaque langue a un "vérificateur" qui est un wrapper pour exécuter un programme externe. Le programme externe pour le vérificateur c ++ est g ++. Le vérificateur c ++ peut transmettre les options du compilateur à g ++ et peut être configuré.
https://github.com/scrooloose/syntastic/wiki/C--:---gcc
Si vous voulez utiliser clang ++, vous pouvez utiliser ces options
let g:syntastic_cpp_compiler = 'clang++'
let g:syntastic_cpp_compiler_options = ' -std=c++11 -stdlib=libc++'
utiliser une initialisation uniforme au lieu du constructeur old ()
vecteur v {1,2,3};
Pour autant que je sache, un travail est en cours pour cela, voir ici à la liste de diffusion vim_dev.
Un correctif amélioré pour le support C++ 11 a été envoyé à la liste de diffusion: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/ug_wmWQqyGU
Vous pouvez également configurer cela dans un fichier de configuration syntastique local.
Déposez un fichier .syntastic_cpp_config
dans la racine de votre projet et donnez-lui les arguments du compilateur un par ligne (j'ai également les chemins d'accès à la bibliothèque Loki à titre d'exemple):
-std=c++11
-Ilib/loki/include
-Ilib/loki_book/include
changer uniquement les drapeaux
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/',
]
J'ai recherché les autres propositions concernant le fichier de syntaxe C++ 11 de VIM et elles sont anciennes et non gérées. Quoi qu'il en soit, les distributions récentes de Vim ont déjà de bons fichiers de syntaxe. Parfois, ils sont cependant mis à jour et la source officielle des fichiers de syntaxe est ici: https://github.com/vim-jp/vim-cpp