2011-02-01 24 views
6

Estoy escribiendo algunas funciones de plegado y estoy en un punto donde necesito comprobar si la línea actual es en realidad un pliegue.¿está doblada la línea? - Cómo verificar pliegues en VIM

El motivo es que se trata de un método de plegado personalizado que depende de la búsqueda/coincidencia de determinadas líneas.

Por ejemplo, si la línea actual se dobla y se ve así:

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

Si haces algo como:

getline('.') 

Es, básicamente, conseguir FOO lo que no hay manera (que yo saber) para saber si estoy en un redil o no.

¿Hay una función auxiliar para esto?

yo creo que tendría que ser algo como:

is_folded('.') 

probablemente podría meterse con el foldtext asignar un título especial para el pliegue pero quiero evitar esto.

Respuesta

6

De :help eval.txt

foldclosed ({} LNUM)

El resultado es un número. Si la línea {lnum} está en un doblez cerrado , el resultado es el número de la primera línea en ese pliegue. Si la línea {lnum} no está en un pliegue cerrado, se devuelve -1.

Puede comprobar si hay una línea determinada si devuelve -1 o un número de línea, probablemente pueda implementar su función isfolded() de esta manera.

Si está buscando la función o función de script Vim, es una buena idea comenzar buscando en eval.txt que contiene mucha información relevante.

+0

Absolutamente correcto. La mayoría de las veces me maravillo con los documentos VIM (: help foo) pero en casos como este, donde no estoy seguro de cómo buscarlo, apesta. ¡Gracias por la rápida respuesta! – alfredodeza

+1

@alfredodeza: No soy un experto en scripts de Vim, pero tengo la sensación de que la mayoría (si no todos) de la sintaxis y las funciones están disponibles en 'eval.txt'. Por lo tanto, es posible que desee comenzar a buscar en ese archivo de ayuda (muy largo) y hacer una búsqueda rápida de su problema. Eso es lo que hice para responder tu pregunta. –

Cuestiones relacionadas