En el post de hoy les vamos a enseñar como funciona y como configurar el editor vim en Linux totalmente personalizable. Pero, antes de nada vamos a explicar que es vim.
Índice
¿Qué es VIM?
Vim, del inglés Vi Improved, es una versión mejorada del clásico editor Vi, creado por BIll Joy en 1976 tomando recursos de los editores de texto para Unix ed y ex. Fue presentado en el año 1991 y desde este momento no ha dejado de mejorarse.
Una de sus características más destacables es su modo de edición modal, mediante el cual seremos capaces de realizar distintos tipos de operaciones. La gracia de este editor modal es que no necesitaremos utilizar el ratón ni las teclas de dirección a la hora de editar ficheros.
Vim, al contrario que con otros editores de texto requerirá de una curva de aprendizaje larga pero, una vez que os acostumbréis a él os aseguro que no querréis utilizar otro editor. Para su instalación en debian utilizaremos el siguiente comando
1 |
sudo apt-get install vim-gtk |
También podéis descargar el paquete para windows o linux desde su página oficial.
Modos de trabajo en Vim

- Modo normal. Es el modo por defecto al abrir vim. En este modo podemos emplear combinaciones de teclas para por ejemplo cambiar de modo, añadir o eliminar una línea, etc. Para volver al modo normal desde cualquier otro modo de edición utilizaríamos la tecla ESC.
- Modo insertar. En este modo podemos introducir texto en nuestro fichero. Explicaremos los comandos un poco más adelante de este post.
- Modo de comandos. Se accede pulsando la tecla : y, permite introducir diferentes comandos, como podría ser buscar o reemplazar texto.
- Modo de reemplazo. Se accede pulsando la tecla R y permite reemplazar texto hasta salir del modo.
- Modo visual. Accederíamos pulsando la tecla v. Sería como seleccionar texto con el cursor sólo, que en este caso, podremos escribir comandos para manipularlo a nuestro antojo.
- Modo selección. Se entra desde el modo visual pulsando la combinación de teclas Ctrl + G. Tiene un comportamiento similar al modo visual pero, al escribir no realizaremos comandos sino que reemplazaremos texto como en otro editor.
- Modo ex. Este modo se asemeja al modo de comandos pero, con la característica de que tras la ejecución de una orden, no se volvería al modo normal. Accedemos pulsando la letra q y saldriámos con la palabra vi.
Comandos disponibles en vim
1 |
vim nombre_fichero |
Comandos para desplazarse por un fichero | |
h | Se desplaza el cursor un espacio a la izquierda. Para poder desplazar varios espacios a la vez se debe colocar el número delante, ej: 2h |
l | Se desplaza el cursor un espacio a la derecha. Para poder desplazar varios espacios a la vez se debe colocar el número delante, ej: 2l |
k | Se desplaza una línea hacia arriba. Para poder desplazar varias líneas a la vez se debe colocar el número delante, ej: 2k |
j |
Se desplaza una línea hacia abajo. Para poder desplazar varias líneas a la vez se debe colocar el número delante, ej: 2j |
w | Se desplaza al principio de la siguiente palabra. Para varias palabras se colocaría el número delante del comando, ej: 2w |
b | Se desplaza al final de la anterior palabra. Para varias palabras se colocaría el número delante del comando, ej: 2b |
e | Se desplaza al final de la siguiente palabra. Para varias palabras se colocaría el número delante del comando, ej: 2e |
0 | Se desplaza al comienzo de la línea |
$ | Se desplaza al final de la línea |
gg | Ir a la primera línea del archivo |
G | Ir a la última línea del archivo |
:n | Ir a la línea n |
Comandos de inserción | |
a | Agrega texto después del cursos y entra en el modo de inserción |
A | Agrega texto al final de la línea y entra en el modo de inserción |
i | Inserta texto antes del cursor y entra en el modo de inserción |
I | Inserta texto al principio de la línea y entra en el modo de inserción |
o | Añade una línea nueva debajo del cursor y entra al modo de inserción |
O | Añade una línea nueva encima del cursor y entra al modo de inserción |
Comandos para suprimir | |
nx | Suprimir n caracteres a partir del que está bajo el cursor |
n+Delete key(supr) | Lo mismo que nx |
ndw | Suprimir n palabras a partir del cursor |
d$ | Suprimir hasta el final de la línea |
ndd | Suprimir n líneas |
dG | Suprimir hasta el final del fichero |
Comandos para deshacer y reemplazar | |
u | Revierte la última modificación |
U | Revierte todas las modificaciones de la línea actual |
nr | Reemplaza n caracteres a partir de la posición del cursor |
cw | Reemplaza una palabra |
c$ | Reemplaza el resto de la línea sobre la que esté situado el cursor |
R | Establece el modo de reemplazo para hacer sustituciones de forma ilimitada |
Comandos para buscar texto | |
/ | Buscar una cadena de caracteres a partir del cursor hasta el final del archivo, ej: /hola |
? | Buscar una cadena de caracteres a partir del cursor hasta el inicio del archivo, ej: ?hola |
n | Buscar la siguiente coincidencia en el fichero |
N | Buscar la anterior coincidencia en el fichero |
f | Buscar un único caracter |
% | Buscar un paréntesis |
Comandos para cortar, copiar y pegar | |
yy | Copiar la línea sobre la que está actualmente el cursor |
dd | Cortar una línea y guardarla en el portapapeles |
p | Pegar en la línea donde se sitúa el cursor |
P | Pegar en la línea superior a la que se encuentre el cursor |
y | Copiar en el modo visual |
d | Cortar en el modo visual |
p | Pegar en el modo visual |
P | Pegar antes de en el modo visual |
Comandos especiales | |
. | Repite el último comando ejecutado |
J | Junta la línea inferior con la línea actual |
:help | Abre la ventana de ayuda |
Comandos para guardar y salir | |
:w | Guarda el fichero |
:q | Salir del fichero sin guardar |
:wq | Guarda los cambios y sale del editor |
:wq nombre | Guarda el fichero con el nombre introducido y sale del editor |
! | El uso de la exclamación fuerza a ejecutar el comando. Por ejemplo para forzar que nos guarde el fichero sería :w! |
Personaliza la configuración de tu editor vim
1 |
/etc/vim/vimrc |
En este fichero podemos añadir nuestra propia configuración al final del mismo. Algunas de las configuraciones más utilizadas las explicamos a continuación pero, podéis ver todas las opciones disponibles desde su página oficial.
set number | Provee a nuestro editor de una numeración a todas las líneas del fichero |
syn on | Agrega colores dependiendo del tipo de fichero |
set ts=n | Establece una indentación de n caracteres |
set nobackup | Evita que se guarden copias en bufer |
Una vez añadidos los cambios al fichero vimrc, guardaríamos y ya tendríamos lista nuestra configuración en vim.
Esto es todo por ahora, en un futuro post explicaremos como instalar plugins a nuestro editor y hacerlo mucho más potente de lo que es ya de por sí. Gracias a todos por leernos y recuerden comentar sus opiniones, dudas…