2011-02-01 13 views
6

Sto scrivendo alcune funzioni di piegatura e sono in un punto in cui ho bisogno di verificare se la linea corrente è in realtà una piega.è una linea piegata? - Come controllare le pieghe in VIM

Il motivo è perché si tratta di un metodo di piegatura personalizzato che dipende dalla ricerca/corrispondenza di determinate righe.

Ad esempio, se la riga corrente è piegato e si presenta come:

-FOO------------------------ 

Se si fa qualcosa di simile:

getline('.') 

Si potrebbe fondamentalmente ottenere FOO quindi non c'è nessun modo (che ho sapere di) per sapere se sono in una piega o meno.

Esiste una funzione di supporto per questo?

penserei che dovrebbe essere qualcosa di simile:

is_folded('.') 

potrei probabilmente confusione con il foldtext per assegnare un titolo speciale per la piega ma voglio evitare questo.

risposta

6

Da :help eval.txt

foldclosed ({} lnum)

Il risultato è un numero. Se la linea {lnum} si trova in una piega chiusa , il risultato è il numero della prima riga in quella piega. Se la riga {lnum} non è chiusa, viene restituito -1.

È possibile verificare la presenza di una data linea se restituisce -1 o un numero di riga, probabilmente si può implementare la funzione isfolded() in questo modo.

Se si sta cercando la funzione o la funzione di script Vim, è consigliabile iniziare a cercare in eval.txt che contiene molte informazioni pertinenti.

+0

Assolutamente corretto. La maggior parte delle volte mi meraviglio dei documenti VIM (: help foo) ma in casi come questo - dove non sono sicuro di come cercarlo) fa schifo. Grazie per la risposta rapida! – alfredodeza

+1

@alfredodeza: Non sono un esperto di script Vim, ma ho avuto la sensazione che la maggior parte (se non tutti?) Della sintassi e delle funzioni sono disponibili da "eval.txt". Quindi, nel dubbio, potresti voler iniziare a cercare in quel file di aiuto (molto lungo) e fare una rapida ricerca del tuo problema. Questo è quello che ho fatto per rispondere alla tua domanda. –

Problemi correlati