2013-04-23 19 views
14

Come accennato in this answer, dal momento che Git 1.8.2 è possibile utilizzare core.commentchar valore di configurazione per cambiare messaggio di commit commenti qualcos'altro da quello predefinito # (hashmark o hashsign).vim evidenziazione della sintassi per git commit messaggi - commentchar personalizzati

Questo è un risparmiatore di vita ad es. se la vostra politica messaggio di commit vuole di avviare messaggio di commit con il numero del biglietto:

#123 Fixed array indices 

parte triste è che questo rompe Vim evidenziazione della sintassi.

Come si può riportare la bellezza?

risposta

13

Si dovrebbe provare a eseguire :verbose syntax. Il file di sintassi attivo è probabilmente $VIMRUNTIME\syntax\gitcommit.vim (github version che è probabile nel tuo .vim).

Vi dirà quale linea di sintassi attiverà la formattazione come commento.

Probabilmente vedrete qualcosa di simile:

gitcommitComment xxx match /^#.*/ 
    links to Comment 

o

syn match gitcommitComment "^#.*" 

che significa che soddisfa ogni riga a partire da #.

Potrebbe essere possibile modificarlo in modo che un # sulla prima riga non sia considerato come un commento. Non conosco il formato syntax quanto basta per darti una soluzione completa.

\%^ match the beginning of file 
\%1l match line 1 
\%>1l match below line 1 

Così si potrebbe tentare di modificare il modello gitComment in modo che non funziona sulla linea 1 del vostro git commit.

(ho provato alcune cose, ma non sono riusciti ad escludere solo prima riga di commento! Sembra che ci sia anche una diffComment rovinare le cose, perché gitcommit include formato diff con syn include @gitcommitDiff syntax/diff.vim) )

Per maggiori dettagli, si veda :help syntax e :help pattern.

Un'altra buona risorsa per la sintassi highligthing: Learn Vim the Hard Way, chapter 46.

+2

Ha funzionato! Aggiungo solo questo per mantenere la piena funzionalità HL (come mostrare errori su qualsiasi testo su 2a linea o dettagli sullo stato di colorazione più avanti nei commenti) Ho effettivamente cambiato '#' nel mio 'core.commentchar' (' '') pretty * ovunque * in il file. Il tempo mostrerà se ha rotto qualcosa però ...;) –

Problemi correlati