6.- FOLDING
Folding permite definir qué partes del archivo se pueden visualizar. Consiste en un proceso de dos etapas:
Primero, se utiliza cualquiera de los métodos fold para definir que constituye un bloque de texto a plegar.
Posteriormente, se utiliza un comando fold para que Vim oculte el texto designado y deje en su lugar un marcador de una única línea.
Vim ofrece seis maneras diferentes de definir, crear y manipular folds (manual, indent, expr, syntax, diff y marker).
6.1.- MANUAL
Comando | Descripción |
---|---|
#zF |
Crea un pliegue que cubre # líneas, comenzando desde la línea actual |
zf |
Crea un pliegue desde la línea actual hasta la línea que marque el comando de movimiento |
6.2.- INDENT
Este tipo de fold se basa en los niveles de indentación proporcionados por la opción shiftwidth. Por cada shiftwidth, el nivel de pliegue (foldlevel) se incrementa en uno. Por ejemplo, con un shiftwidth=4
, las líneas indentadas con cuatro columnas, tendrán un foldlevel de 1, líneas indentadas con ocho columnas (dos shiftwidth) tendrán un foldlevel de 2, y así sucesivamente.
set foldmethod=indent
Se puede controlar el nivel de pliegues a visualizar con el comando foldlevel
. Toma como argumento un entero y muestra sólo las líneas cuyo foldlevel es igual o menor al argumento.
:set foldlevel=0
Para aumentar o decrementar esta opción, mediante una secuencia de keystrokes y poder visualizar un mayor o menor contenido del documento se pueden utilizar los comandos zr (incrementar) y zm (decrementar).
6.4.- MARKER
Este tipo de fold se basa en marcadores de texto.
set foldmethod=market
set foldmarket=nnn,mmm
, donde nnn es la cadena de caracteres donde comienza el marcador y mmm es la cadena de caracteres donde finaliza el marcador.
6.5.- GESTIÓN DE FOLDS
Para facilitar la gestión de los pliegues, se puede activar una columna en el margen izquierdo del documento que permite tener una perspectiva visual sobre dichos pliegues:
set foldcolumns=5
Cualquier acción en un pliegue afecta a todas las líneas que conforman el pliegue, es decir, si se elimina un pliegue, se eliminan todas sus líneas.
Comando | Descripción |
---|---|
zO |
Abre un pliegue, recursivamente |
zo |
Abre un pliegue |
zC |
Cierra un pliegue, recursivamente |
zc |
Cierra un pliegue |
zR |
Establece el foldlevel al nivel más alto, equivalente a abrir todos los pliegues |
zr |
Aumenta en uno el valor de foldlevel , equivalente a abrir el siguiente pliegue más interno |
zM |
Establece el foldlevel=0 , equivalente a cerrar todos los pliegues |
zm |
Disminuye en uno el valor de foldlevel , equivalente a cerrar el pliegue más interno |
zj |
Mueve el cursor al comienzo del siguiente pliegue |
zk |
Mueve el cursor al final del anterior pliegue |
zd |
Elimina un pliegue |
zD |
Elimina un pliegue, recursivamente |
zE |
Elimina todos los pliegues |
Enlaces
- Sección previa: Múltiples documentos
- Siguiente sección: Customizando VIM