2013-08-16 12 views
8

Sto utilizzando la funzione di occultamento di vim per visualizzare i miei file di lattice in una forma un po 'più leggibile.Combinare la funzione di piega e occultamento di vim

Inoltre, sto utilizzando il plug-in vim-latex, che crea pieghe per gli ambienti matematici che mostrano l'etichetta e l'inizio del contenuto dell'ambiente.

Esempio: L'ambiente matematica nel codice lattice pianura simile a questo:

\begin{align} 
    \xi = \cos \alpha 
    \label{eqn:test} 
\end{align} 

Utilizzando la funzione nascondere del vim, viene visualizzato come

\begin{align} 
    ξ = \cos α 
    \label{eqn:test} 
\end{align} 

Quando vim ora crea la piega, visualizza come

+-- 4 lines: align (eqn:test): \xi = \cos \alpha 

La mia domanda è ora: È possibile ottenere vim per applicare l'occultamento alla descrizione delle pieghe, in modo che sembri di seguito?

+-- 4 lines: align (eqn:test): ξ = \cos α 
+1

+1 per mostrare occultamento, che è completamente nuovo per me! – Jonatan

+0

Mai sentito parlare di nascondere prima questa domanda! Grazie! – imslavko

+1

@Jonatan ogni volta che '' h qualcosa' vediamo nascondere la sintassi e nascondere l'evidenziazione. Perché vim help ft ha nascosto la sintassi. Per esempio. ': h something' e quindi' V' quindi 'jjjjjj ...' fino a quando non vedi la cosa celata. (per esempio, link) il buffer di aiuto di vim ha 'cocu = nc' e' cole = 2'. – Kent

risposta

2

In generale, il foldtext e nascondere potrebbe essere combinati. Ma questo deve essere implementato da solo, seguendo la logica dell'occultamento.

L'opzione foldtext definisce il testo da visualizzare, quando una piega è stata chiusa. Il valore dell'opzione potrebbe essere una funzione o un'espressione vim. quindi potremmo fare molte modifiche sul testo originale.

Nascondere. di solito lo fa: quando X pattern corrisponde, mostra Y invece di X. Quindi potremmo scrivere una funzione, leggere la riga di foldstart, controllare i pattern di sintassi di occultamento, se la linea corrisponde a any, se True, quindi rimuovere quelle corrispondenti, e visualizzare il cchar. Impostiamo questa funzione come valore dell'opzione foldtext. Ovviamente solo per determinati tipi di file.

Per l'evidenziazione, questi due gruppi potrebbero essere utilizzati per il foldtext.

Folded  line used for closed folds 
FoldColumn 'foldcolumn' 

È quello che mi viene in mente. Se qualcuno potrebbe avere un modo migliore/più facile per farlo, sono felice di imparare. per esempio alcune funzioni built-in, che non conosco, potrebbero aiutare in questa situazione.

+0

Grazie per le informazioni. Quindi, in pratica, dovrei scrivere un filtro per la funzione foldtext fornita con la suite latex e usarlo come nuovo foldtext. C'è un modo per utilizzare la sintassi di vim corrispondente sulla stringa restituita da una funzione o dovrei implementare l'intera corrispondenza da solo? –

+0

@SimonL. come ho scritto nella risposta. AFAIK Non penso che Vim fornisca la cosa fuori dagli schemi. – Kent

Problemi correlati