Vim en 2 minutos

[Pincha aquí para ver otros artículos sobre Vim]

Modos de trabajo

Vim tiene dos modos de trabajos: El Modo de Edición y el Modo Comando. Cuando inicias el programa te encuentras en Modo Comando, para acceder al Modo de Edición y empezar a trabajar con el texto debes introducir algún comando de inserción (cómo "a" o "i").

Para volver de nuevo al modo comando debes pulsar la tecla ESCAPE. Si esto te parece farragoso no te preocupes: cuando te hagas a ello lo encontrarás tremendamente rápido y natural (los autores ahora mismo encuentran liosos los editores no modales, pero hemos llegado a un estado de vim-degeneración tremendo).

1. Comandos Ultra Habituales

Vim dispone de muchí­simos comandos y macros. En esta sección pondremos los mínimos imprescindibles para poder editar con soltura. Aunque no seas usuario de Vim o no te guste, es útil conocer este conjunto mínimo de comandos porque Vi está disponible en cualquier máquina Unix (lo especifica el estándar POSIX).

Añadir e insertar: a / i
Entra en modo edición en la posición anterior / actual del cursor.

Añadir debajo: o
Inserta una nueva linea en blanco debajo de la actúal y entra en modo edición en esa nueva lí­nea

Deshacer y rehacer: u / Control-R
Deshacer / Rehacer la última acción (tiene varios niveles)

Volver al estado de hace X minutos, segundos o horas: :earlier 10s/:earlier 10m/:earlier 10h
Vuelve al estado en el que estaba el fichero en el tiempo especificado. Por ejemplo si ponemos :earlier 10m volverá al estado de hacer diez minutos (además de "m" podemos poner "s" para los segundos y "h" para las horas.)

Suprimir carácter y línea: x / dd
Suprime el carácter/línea bajo el cursor. Si escribimos un número antes del comando (por ejemplo "12dd") se borrarán el número especificado de carácteres o líneas

Guardar: :w / :wa
Guardar / Guardar todas las pestañas. Si ponemos una exclamación al final (":w!") forzamos a guardar sin confirmación

Salir sin guardar: :q / :qa
Salir / salir de todas las pestañas. Si ponemos una exclamación al final (":q!") forzamos a salir sin confirmación

Guardar y salir: :x / :xa
Guardar y salir. Si ponemos una exclamación al final (":x!") forzamos a salir sin confirmación

Ir a linea: ngg
Va a la lí­nea n, por ejemplo, si escribimos "10gg" irá a la linea 10. Si no esribimos número de linea (sólo "gg"), va al principio del fichero.

Ir al final del fichero: G
Va al final del fichero

Buscar: /termino_busqueda
Busca el término especificado tras la barra en el texto

Buscar hacia atrás: ?cadena< /dt>
Busca el término especificado tras el ? hacia atrás en el texto.

Siguiente /anterior resultado: n / N
Siguiente / anterior resultado de la búsqueda

Preparar pegado externo: set paste / :set nopaste
:set paste pone el vim en modo "pegar". En este modo se desactiva cualquier formateado automático de modo que podamos pegar lineas con el ratón sin que nos las descoloque. :set nopaste se utiliza para volver al modo normal con formateado automático. Esto es muy útil para pegar con el ratón desde programas externos al Vim (en la sección "Copiar, pegar, insertar" veremos otra forma de pegar para texto interno a Vim.)

Sustituir texto: :%s/cadena 1/cadena 2/g
Sustituye todo el fichero cada ocurrencia de cadena 1 por cadena 2

Repetir última modificación: .
Repite la última modificación que hayamos realizado.
Moverse a próximo carácter: f-carácter
Se mueve al carácter indicado. Por ejemplo si pulsamos "f-i" estándo al principio de esta linea se moverá a la palabra "indicado." Podemos avanzar hasta el siguiente carácter pulsando punto y coma (;). Este comando es muy útil para moverse rápidamente a un punto determinado dentro de un párrafo.

2. Pestañas, subdivisiones y sesiones

Vim nos permite editar varios ficheros o varias partes de un mismo fichero simultaneamente. Para ello nos proporciona pestañas (similares a las pestañas de los navegadores) y subdivisiones (“splits”). Además nos permite guardar las sesiones de edición, incluyendo opciones usadas, pestañas, archivos cargados en las pestañas, y subdivisiones creadas dentro de cada pestaña, para poder recuperarlas en cualquier momento. En mi caso suelo trabajar abriendo cada uno de los ficheros sobre los que estoy trabajando en una pestaña, y creo subdivisiones cuando quiero ver varias partes de un fichero al mismo tiempo.

Cargar archivo: :e nombre_del_archivo
Abre el archivo especificado en la pestaña actúal. Si no queremos escribirlo podemos poner ":e ." y se nos abrirá un navegador de ficheros en modo texto muy intuitivo (se usa con los cursores e intro para abrir fichero o entrar en directorios) desde el cual podremos seleccionar el fichero

Abrir nueva pestaña: tabe
Crea una nueva pestaña vacía. Normalmente cargaremos algo en la pestaña usando el comando ":e" (ver punto anterior). La pestaña se puede cerrar con :tabc ("tab close") o con los :w, :q y :x habituales (si no añadimos "a" al final de estos comandos, operarán sólo sobre la pestaña actual; si lo añadimos (":wa!") operarán sobre todas las pestañas abiertas.

Ir a siguiente / anterior pestaña: gt / gT
Cambiar a pestaña siguiente / pestaña anterior. También podemos ir directamente a la primera o la última con :tabfirst y :tablast

Crear subdivisión horizontal o vertical :split / :vsplit
Crea, dentro de la pestaña actúal, una subdivisión independiente horizontal (":split") o vertical (":vsplit", más útil para monitores panorámicos.) Podemos movernos entre las subdivisiones usando Control-W-W o Control-W y una tecla del cursor hacia donde esté la subdivisión. Podemos clear subdivisiones dentro de las propias subdivisiones. Las subdivisiones puede cerrarse usando ":q" (cerrará sólo esa división, no la pestaña ni el Vim.)