wake-up-neo.net

Gibt es eine C++ 11-Syntaxdatei für vim?

Insbesondere die Anzeige von Initialisierungslisten ist wirklich schlecht:

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

hebt die geschweiften Klammern in rot hervor (zeigt einen Fehler an).

64
Neil G

Es gibt jetzt ein C++ 11-Skript aus http://www.vim.org/scripts/script.php?script_id=3797 , das die geschweiften Klammern in Klammern nicht mehr als Fehler kennzeichnet. 

32
kennytm

Als Alternative können Sie verwenden

let c_no_curly_error=1

in Ihrer .vimrc-Datei, damit vim {} nicht als Fehler in () markiert.

34
thrust

Wenn Sie Syntastic verwenden, fügen Sie dies zu Ihrem .vimrc (oder .vimrc.local) hinzu.

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

Syntastic zeigt Fehler für in mehreren Sprachen geschriebenen Code. Jede Sprache hat einen "Checker", der ein Wrapper ist, um ein externes Programm auszuführen. Das externe Programm für den C++ - Checker ist g ++. Der C++ - Checker kann Compiler-Optionen an g ++ übergeben und kann konfiguriert werden.

https://github.com/scrooloose/syntastic/wiki/C--:---gcc

Wenn Sie Clang ++ verwenden möchten, können Sie diese Optionen verwenden

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

verwenden Sie eine einheitliche Initialisierung anstelle des alten () - Konstruktors

vektor v {1,2,3};

9
Keke

Soweit ich weiß, ist eine Arbeit in Arbeit, siehe hier in der vim_dev-Mailliste.

6
Tarantula

Ein verbesserter Patch für die Unterstützung von C++ 11 wurde an die Mailingliste gesendet: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/ug_wmWQqyGU

4
Ricardo

Sie können dies auch in einer lokalen Konfigurationsdatei konfigurieren.

Legen Sie eine .syntastic_cpp_config-Datei in Ihrem Projektstamm ab und geben Sie die Compilerargumente pro Zeile an (ich habe auch Pfade für die Loki-Bibliothek als Beispiel):

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

Wenn Sie YouCompleteMe verwenden, können Sie ".ycm_extra_conf.py" wie folgt ändern: (Dateipfad ~/.vim/bundle/YouCompleteMe/dritte_party/ycmd/cpp/ycm/.ycm_extra_conf.py);

nur Flags wechseln

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
MulticsYin

Ich habe die anderen Vorschläge zur C++ 11-Syntaxdatei von VIM durchsucht und sie sind alt und nicht gepflegt. In den letzten Versionen von Vim gibt es jedoch bereits gute Syntaxdateien. Manchmal werden sie jedoch aktualisiert, und die offizielle Quelle für Syntaxdateien ist hier: https://github.com/vim-jp/vim-cpp

0
Rado