Folding en vim (Pliegues)

Los Folds (Pliegues) son herramientas muy útiles para cuando se programa. Permiten agrupar trozos de códigos de forma que el editor las oculte o muestre según las necesitemos o no, acortando bastante el tiempo que se pierde buscando algo por el código. En muchos editores visuales se hace casi automáticamente, mostrando un “+” a un lado. En vim, es algo más complicado.
Antes utilizaba las funciones de los plugins de sintáxis, para que el folding se aplicara automáticamente en el código, pero a veces no funciona. Mientras que con python va sin problemas, curiosamente con C no me funciona bien, supongo que será por no usar el estándar de codificación de GNU y seguir el que nos han enseñado en la ETSII.

Si queremos usar el sistema automático basado en la sintáxis:
set fdm=syntax

Si usamos uno basado en la indentación del código (si usamos tabulaciones va bien, pero puede ser excesivo)
set fdm=indent

Si usamos el basado en marcas (código de vim insertado en el fuente)
set fdm=marker

Una marca se pone con {{{ y se termina con }}}. Podemos seguir las marcas con un número de nivel, {{{1 sería el primero y {{{2 estaría dentro del anterior, y así sucesivamente. Estas marcas no interfieren con el código, se pueden poner, por ejemplo, dentro de los comentarios de C:

/* esto es un comentario {{{1 */
int funcion(int parametro) {
printf("Hola pliegues!!");
} /* funcion }}} */

Para cualquier tipo de pliegue, si dentro del rango del plegado (p. ej. en el printf) tecleamos el comando zc, se cerrará el pliegue actual. Con el comando zo lo abriremos de nuevo. Si la segunda letra es mayúscula, se aplica a todos los pliegues. Más información en la documentación de vim sobre folding

Suerte