salir para guardar editar vim folding

para - ¿Cómo puedo plegar automáticamente todas las funciones en un archivo con vim?



salir de vim ubuntu (6)

Estaba tratando de hacer lo mismo y terminé simplemente haciendo:

setlocal foldmethod=marker setlocal foldmarker={,}

Utiliza el método de plegado de marcador y cambia el marcador a un solo corchete (de manera predeterminada el marcador es {{{ ).

Al principio, utilizo el conjunto foldmethod = marker, y muevo el cursor al {de una función, uso el zf% para doblar la función actual. Pero hay muchas funciones en este archivo. ¿Cómo puedo doblar todas las funciones en este archivo? Y no quiero doblar {} en las funciones.


Me encontré con esto cuando estaba buscando algo similar. Obviamente habrías descubierto esto, pero para el beneficio de otras personas lo responderé de todos modos.

Debes ingresar las siguientes líneas en tu .vimrc:

set foldmethod=syntax set foldnestmax=1


Pruebe :%g//(function/_./{-}/)/@<={/ normal! f{zf% :%g//(function/_./{-}/)/@<={/ normal! f{zf%

Explicar poco a poco:

:%g - búsqueda global en un archivo completo

//(function/_./{-}/)/@<={/ - patrón para encontrar primero ''{'' después de cualquier ''función'' y poner el cursor al comienzo de la cadena con ese ''{''

normal! f{zf% normal! f{zf% - ejecuta hacia adelante a ''{'' f{ y haz fold con move ''%'' zf% en esa cadena


Si :set foldmethod=syntax los pliegues se especificarán a partir de las definiciones de sintaxis. Si lo prefiere, puede :set foldmethod=indent para que la sangría defina los pliegues.

Puede cerrar todos los pliegues con zM . Si tiene pliegues anidados y desea doblar nivel por nivel, use zm . Para abrir pliegues use zR (todo) y zr (nivel por nivel).


Si cada función tiene su llave de apertura en la primera columna, puede hacer:

:%g/^{/normal! zf%

Tal vez es más claro de esta manera:

:%g /^{/ normal! zf%

el comando g selecciona las líneas de acuerdo con el siguiente patrón, y ejecuta un comando ex (¡aquí normal! para tocar las teclas del modo normal).

Ver :help :g y :help :normal


set foldlevel=0

doblará todo desde el principio, lo que se va a plegar. Según el idioma y la función de plegado, el contenido del plegado variará.