Si preguntas a la gente por la experiencia/opinión que tienen sobre vim, solo hay dos posibilidades; o lo amas o lo odias, y esto es algo en que todos estamos de acuerdo.
Aprender vim es “duro” y un camino muy largo. Y es que un servidor, después de usarlo durante años, sigue descubriendo bondades de este magnífico editor, y es por eso que os puedo contar que con un control avanzado se pueden hacer tareas complejas y largas, de manera sencilla y rápida.
En este artículo quiero haré una introducción sobre vim y algunas de sus funciones más interesantes para que finalmente te animes y hagas de vim tu editor preferido.
Para que cuando escuches la palabra nano únicamente se te venga a la cabeza el apelativo cariñoso de Valencia 😀
¿Cómo podemos instalar VIM?
Linux
Dependerá de tu SO, pero el paquete a instalar es vim. Únicamente explicaré los SO basados en DEB y RPM:
- Deb
- $ sudo apt-get update
- $ sudo apt-get install vim
- Rpm
- $ sudo yum install vim
Windows
- Para descargar Vim, visita vim.org.
- Haga clic en la opción Descargar del panel izquierdo.
- Haga clic en PC: opción MS-DOS y MS-Windows.
- Descarga el instalador .exe. (En el momento de escribir este tutorial, el nombre del instalador era gvim82.exe).
- Haga doble clic en el instalador y siga las instrucciones en pantalla para completar la instalación.
MAC
Seguramente venga de serie, pero si no, puedes instalarlo con brew.
- Brew install vim
Qué significa VIM
Vi fue el primer editor de texto screen-oriented creado para Unix, fue diseñado para ser simple pero poderoso en la manipulación de texto.
Vim (del inglés Vi IMproved) es la versión moderna y mejorada del editor de texto Vi, presente en todos los sistemas UNIX.
Por qué usar VIM
- Es gratuito y open source.
- Está disponible en la mayoría de plataformas.
- Navegación y uso sin ratón.
- Es muy ligero y rápido.
- Sin distracciones.
- Extremadamente personalizable.
Cuáles son sus modos
Podemos hablar de 3 grandes modos disponibles en vim: modo normal, modo insert, modo command.
Modo normal
El modo normal es en el que seguramente pasaremos la mayor parte de nuestro tiempo mientras usamos Vim.
- h mueve el cursor un carácter a la izquierda.
- j mueve el cursor una línea hacia abajo.
- k mueve el cursor una línea hacia arriba.
- l mueve el cursor un carácter a la derecha.
- 0 mueve el cursor al principio de la línea.
- $ mueve el cursor al final de la línea.
- w avanza una palabra.
- b retrocede una palabra.
- G mueve al final del archivo.
- gg mover al principio del archivo.
- ^ moverse al primer carácter que no está en blanco de una línea.
- H nos movemos a la parte superior de la pantalla.
- M nos movemos al centro de la pantalla.
- L nos movemos a la parte inferior de la pantalla.
También podemos mezclar un número con una de estas acciones con el fin de de repetir n veces dicha acción (salvo las que te llevan a una posición fija como puede ser ir al final del fichero o ir al principio de una línea, por más veces que lo pulses el resultado es siempre el mismo).
Ejemplo:
5w -> avanzaremos 5 palabras
12k-> subiremos el cursor 12 líneas hacia arriba.
💡 Tip: Para realizar una operación de deshacer, presionamos u en el modo normal. Esto deshace los cambios hasta la última vez que estuvo en modo normal. Si desea rehacer (es decir, deshacer su deshacer) presione Ctrl+r en modo normal.
Modo Insert
Este es el segundo modo que más usaremos y será el que más familiar nos resulte, ya que nos recuerda a un editor de texto estándar. Una vez en el modo de insert, cuando escribamos insertaremos caracteres como un editor de text. Para entrar en modo de inserción tenemos 6 maneras.
- i entramos en modo insert antes del cursor.
- I entramos en modo insert al comienzo de la línea actual.
- a entramos en el modo insert añadiendo después del cursor
- A entramos en el modo insert al final de la línea.
- o inserta una nueva línea debajo de la línea actual y entra en el modo de insert en la nueva línea
- O inserta una nueva línea encima de la actual y entra en el modo de inserción en la nueva línea
Modo Command
En el modo command tenemos una gran diversidad de comandos y podemos hacer cosas que no serían tan fácil hacer en el modo insert, o incluso directamente otras que directamente no podríamos.
Para entrar al modo command, pulsamos ‘:’ (dos puntos) desde el modo normal y luego escribimos nuestro comando (el cual podemos ver que va apareciendo en la parte inferior de la terminal). Uno de los comandos más prácticos y que más utilizaremos en nuestro día a día es el de “buscar y reemplazar”: :%s/hola/adios/gc
- : Entramos en modo command
- % Indicamos en todo el fichero (por podemos poner 4,19 y solo aplicaríamos a las líneas comprendidas entre la número 4 y la 19).
- s indicamos que sustituya.
- /hola/ cadena de texto que queremos reemplazar.
- /adios/ cadena de texto que dejaremos.
- g significa global, de lo contrario solo se ejecutaría una vez por línea.
- c pide confirmación antes de realizar la sustitución de cada reemplazo, de lo contrario, hará todas de manera y sin preguntar.
Una de las preguntas de stackoverflow con más audiencia, y por la que todos hemos pasado (y muchos nos hemos quedado “atrapados”), es la manera de salir de un fichero una vez abierto con vim.
- :q salimos del fichero si no se han realizado modificaciones.
- :q! salimos salir sin guardar.
- :wq guardamos y salimos.
- :wq! guardamos y salimos incluso si el archivo solo tiene permiso de lectura.
- 😡 guardamos y salimos (similar a :wq, pero solo escribe si han realizado cambios).
Este ha sido un primer acercamiento a vim, pero si te has quedado con ganas de más, no te pierdas nuestra próxima entrada en la que haremos una introducción a un nivel más avanzado, en el que veremos verbos, nombres y modificadores. No te lo puedes perder 🚀