2013-05-07 21 views
5

Con mia grande sorpresa, il commento di sintassi più righe in TeX:multilinea Commenti Colorazione sintassi in VIM per TeX file

\usepackage{verbatim} 
... 
\begin{comment} 
    I don't like this line anymore. Please don't print it. 
\end{comment} 

non è riconosciuto/trattata da $VIMRUNTIME/syntax/tex.vim e quindi non colorato come un commento. C'è un Guru di scripting VIM che potrebbe avere una soluzione in giro, come sono sicuro che molte persone lo stiano cercando?

Grazie

VIM v7.3

risposta

8

Un po 'di ricerca su VIM evidenziazione della sintassi mi ha aiutato a scrivere questa riga di codice che fa quasi tutto il lavoro quando aggiunto al ~/.vim/after/syntax/tex.vim (potrebbe essere necessario creare la directory nella directory ~/.vim):

syn region texComment start="\\begin{comment}" end="\\end{comment}" 

il mio unico problema è che non è possibile trovare come disattivare l'abbinamento se incontra fine del file prima di fine del commento ENV ironment. Qualcuno ha una soluzione?

NB: Questo comando non supporta la nidificazione, che è una buona cosa dal lattice né e sarà molto probabilmente senza eguali \end{comment}

+0

la regione di avvio è indipendente di una possibile fine corrispondente, che sta causando il problema. Ma non è questo un caso angosciante piuttosto oscuro ?! –

+2

Invece di modificare la sintassi originale, basta mettere la riga in ~ ~/.vim/after/syntax/tex.vim' –

+0

@IngoKakat: Grazie per la precisione su '/ after/syntax'. Per quanto riguarda la prima osservazione, ho provato cose come 'inizio syn regione texComment = "/ \\ begin {commento} \ _. * \\ end {commento} /" fine = "\\ end {commento}"', ma il il problema fondamentale è che se il modello di estremità è abbinato nel modello di partenza (che è obbligatorio verificarne l'esistenza), non riesco a farlo corrispondere di nuovo nel modello di estremità. Da [Doc VIM] (http://vimdoc.sourceforge.net/htmldoc/syntax.html): la partita per il modello finale sarà mai sovrapporsi con il modello di partenza. –

2

Ci sono altre opzioni come commentare il codice (vedi multiline comment), quindi questo è il contenuto mio ~/.vim/after/syntax/tex.vim:

syn region texComment start="\\begin{comment}" end="\\end{comment}" 
syn region texComment start="\\iffalse" end="\\fi" 
syn region texComment start="\\ifx true false" end="\\fi"