Jorge González Rubio

Jorge González Rubio

Sysadmin & Devops Engineer
Related topics: Editor VIM

Introducción a VIM

29 junio 2022
2 minutos

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 🚀