Ho avuto lo stesso problema quando ho iniziato a utilizzare Vim. La soluzione è semplice, basta modificare il file di sintassi c usato da vim, ecco come fare:
Quando si avvia la modifica di un file di C o C++, vim legge il file di sintassi predefinita c situato nel
$VIMRUNTIME/syntax/c.vim
(dove $ VIMRUNTIME è il luogo in cui è stato installato vim. È possibile scoprire il valore predefinito aprendo vim e utilizzando il comando ": echo $ VIMRUNTIME").
Si può semplicemente sovrascrivere il file, oppure è possibile creare il file di sintassi C personalizzato (che verrà caricato da vim al posto di quella di default) in questa posizione:
$HOME/.vim/syntax/c.vim (for UNIX)
$HOME/vimfiles/syntax/c.vim (for PC or OS/2)
(non ho mai usato un Mac, quindi non so quale funzionerà per te.Puoi trovare ulteriori informazioni nella guida di vim ": help vimfiles")
Ora la parte divertente. Copiare il file "$ VIMRUNTIME/sintassi/c.vim" default nella directory vimfiles ("$ HOME/.vim/sintassi/c.vim" per UNIX), e modificarlo aggiungendo queste righe:
" Highlight Class and Function names
syn match cCustomParen "(" contains=cParen,cCppParen
syn match cCustomFunc "\w\+\s*(" contains=cCustomParen
syn match cCustomScope "::"
syn match cCustomClass "\w\+\s*::" contains=cCustomScope
hi def link cCustomFunc Function
hi def link cCustomClass Function
Questo è tutto! Ora le funzioni e i nomi delle classi saranno evidenziati con il colore definito nell'evidenziazione "Funzione" (": hi Function"). Se si desidera personalizzare i colori, è possibile modificare le ultime due righe di cui sopra a qualcosa di simile:
hi def cCustomFunc gui=bold guifg=yellowgreen
hi def cCustomClass gui=reverse guifg=#00FF00
oppure si può lasciare il file di sintassi C solo e definire i colori nel file vimrc (": help vimrc") :
hi cCustomFunc gui=bold guifg=yellowgreen
hi cCustomClass gui=reverse guifg=#00FF00
(notare l'assenza della parola chiave "def", andare a ": help highlight-default" per i dettagli). Per i parametri disponibili al comando ": hi" vedi ": help: evidenzia".
È possibile trovare il file c.vim completo per Vim 7.2 su questo link (Nota: utilizzare solo questo se si dispone di un Vim non modificata, versione 7.2):
http://pastebin.com/f33aeab77
E lo screenshot obbligatorio:
http://img16.imageshack.us/img16/2073/vimy.png (Sorry for imageshack)
fare il vostro TextMate evidenziare qualsiasi nome dopo 'nuovo' o solo quelli che sono stati dichiarati in qualche modo? –
Sfortunatamente ciò che vim chiama un evidenziatore della sintassi è solitamente solo un lexer che può corrispondere alle parentesi e conosce il contesto di base. Questo è il caso per i file di sintassi C e CPP. Avresti bisogno di un parser "reale" per gestire quei casi ... Ciò significa che alcuni hacking c.vim;) – viraptor
Ho pubblicato una domanda simile su #defines qui: http://stackoverflow.com/questions/1512602/highlighting -defined-value-in-vim. I tuoi suggerimenti/suggerimenti sono apprezzati. Spero che ci sia un modo per evidenziare questo come la bella risposta suggerita da Eduardo. – user183442