2011-05-12 14 views
6

Me di cuenta de que los textos plegables pueden mostrar información útil. Por lo general, muestran algo así comoCambiar el texto en pliegues

+-- 5 lines: <div id="header-inner">--------------------------------------------

¿Es posible cambiar el texto en esas líneas? Me di cuenta de que algo es posible en foldexpr, pero ¿sería posible rediseñar por completo los pliegues?
p.
+ <div id="header-inner"> : "possible comment from line above" : row 27 : length 5

gracias

+1

: help foldtext debería comenzar –

Respuesta

10

Hay algunas cosas que no entiendo de su pregunta, como qué foldmethod que está utilizando, o lo que el número de "filas" se refiere a, pero aquí es una costumbre foldtext función que debería hacer más o menos lo que quiere:

function! MyFoldText() 
    let nl = v:foldend - v:foldstart + 1 
    let comment = substitute(getline(v:foldstart),"^ *","",1) 
    let linetext = substitute(getline(v:foldstart+1),"^ *","",1) 
    let txt = '+ ' . linetext . ' : "' . comment . '" : length ' . nl 
    return txt 
endfunction 
set foldtext=MyFoldText() 

Explicación:

  1. encuentra el número de línea s contenido por el doblez.
  2. Obtenga el "comentario" de la línea antes de la primera línea doblada (y elimine los espacios iniciales).
  3. Obtenga el texto de la primera línea del pliegue (y quite los espacios iniciales).
  4. Ensamble la información anterior en el texto desplegable devuelto, con el formato adecuado.

Espero que esto ayude. Debe ser fácilmente adaptado a sus necesidades.

+0

Gracias. Veo que vim es realmente poderoso :-) Estoy utilizando foldmethod = expr, pero ¿tu solución funciona para cada método de fold? fila debe referirse al número de línea que comienza el doblez. Probaré v: lnum – xralf

+1

v: lnum no funciona, pero v: foldstart muestra el número de línea correcto. Solo hay un pequeño detalle, que el final de la cuerda (------------------------------------- -------) no es posible eliminar. – xralf

+1

Sí, el texto plegado funciona para cada método de plegado (no lo era si estaba leyendo el 'comentario' de la línea correcta, pero si funciona, ¡entonces no hay problema!). Puedes deshacerte de los ---- finales por 'set fillchars = fold: \' (ten en cuenta el espacio final). –

0

También puede inspeccionar la configuración de plegado desde Steve Losh’s bitbucket repo page about vim.

¡Tiene un aspecto muy bonito, que también está muy organizado!

Para ver cómo es, puede verlo en este youtuebe video.

+0

Buen video! Creo que he encontrado una nueva forma de organizar mi gran archivo vimrc Incresing ahora. –

Cuestiones relacionadas