Aprendiendo a usar Vim – Parte 1

En el mundo del software libre y de código abierto existe un flame war casi tan antiguo como el núcleo Linux. Vim, nacido en 1991 vs Emacs, nacido en 1976. En este flame war tomo partido en el bando de Vim, cualquiera que sea el bando que uno tome hará que la población no IT vea a uno como un hacker. Lo cierto es que una vez uno aprende a usar vim como debe ser, te olvidarás de cualquier IDE o editor de texto (así como me ocurrió en su momento con Sublime Text, Atom, Visual Studio Code que eras mis preferidos).

Esta entrada la he ido construyendo en la medida que me he ido adaptando a usar vim y está basada en una entrada publicada en el Blog de Yann Esposito. Me parece que el abordaje propuesto por Yann es completamente natural y progresivo, y con un mejor resultado que un montón de cursos que he visto para usar Vim.

Nivel 1 – Supervivencia

El paso inicial para usar vim, es instalar vim… Viene instalado por defecto en muchas distros, pero de no tenerlo solo es cuestión de buscarlo en el repositorio de nuestra distro preferida. Ahora abrirlo es cuestión de llamarlo desde la línea de comandos con el comando vim.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                              VIM - VI Mejorado                                
~                                                                              
~                               versión 8.2.4701                                
~                          por Bram Moolenaar et al.                            
~                     Modificado por <bugzilla@redhat.com>                      
~            Vim es código abierto y se puede distribuir libremente            
~                                                                              
~                     ¡Ayude a los niños pobres de Uganda!                      
~            escriba  «:help iccf<intro>»    para más información              
~                                                                              
~           escriba  «:q<intro>»            para salir                          
~           escriba  «:help<intro>» o <f1>  para obtener ayuda                  
~        escriba «:help version8<intro>» para información de la versión        
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
                                                              0,0-1        Todo
</intro></f1></intro></intro></intro></bugzilla@redhat.com>

En este punto debemos entender lo siguiente, vim tiene 2 modos, un modo Normal y el modo Insert. Nos daremos cuenta que si intentamos escribir algo apenas abrimos vim, no pasará nada. Para cambiar al modo Insert, solo tecleamos la letra i.

Para sobrevivir al modo Normal, solo necesitamos conocer cinco comandos:

  • i → Cambiar a modo Insert. Para volver al modo Normal solo teclear ESC.
  • x → Borra el carácter donde se encuentra el cursor.
  • :wq → En realidad son dos comandos juntos, guardar y cerrar. Por separado sería :w para guardar, :q para cerrar.
  • dd → Borra (y de paso copia) la línea donde se encuentra el cursor.
  • p → Pegar.

Y estos comandos sería recomendado conocer:

  • hjkl → movimiento básico del cursor (←↓↑→). Para recordarlo, la j parece flecha abajo.
  • :help <command> → Muestra la ayuda sobre un comando específico. Si usamos :help a secas, obtendremos la ayuda general.

Y con esto podremos comenzar, una vez los usemos durante algunos días podremos avanzar al nivel siguiente. Una observación importante es que los comandos que inician con : se ingresan con la tecla ENTER.

Nivel 2 – Estando cómodo

Ya conoces los comandos necesarios para sobrevivir. Es hora de aprender algunos comandos más. Estas son mis sugerencias:

  1. Variaciones del modo de inserción:
    • a → insertar después del cursor
    • o → insertar una nueva línea después de la actual
    • O → insertar una nueva línea antes de la actual
    • cw → reemplazar desde el cursor hasta el final de la palabra
  2. Movimientos básicos
    • 0 → ir a la primera columna
    • ^ → vaya al primer carácter que no esté en blanco de la línea
    • $ → ir al final de la línea
    • g_ → va al último carácter que no esté en blanco de la línea
    • /patrón → buscar patrón
  3. Copiar pegar
    • P → pegar antes, recuerde que p se pega después de la posición actual.
    • yy → copia la línea actual, más fácil pero equivalente a ddP.
  4. Deshacer / rehacer
    • u → deshacer
    • <C-r> → rehacer
  5. Cargar/Guardar/Salir/Cambiar archivo (búfer)
    • :e → abrir
    • :w → guardar
    • :saveas → guardar en
    • :x, ZZ o :wq → guardar y salir (:x guardar solo si es necesario)
    • :q! → salir sin guardar, también: :qa! para salir incluso si hay buffers ocultos modificados.
    • :bn (resp. :bp) → mostrar el archivo (búfer) siguiente (o anterior)

Tómese el tiempo para aprender todos estos comandos. Una vez hecho esto, debería poder hacer todo lo que puede hacer en otros editores. Es posible que todavía te sientas un poco incómodo. En los niveles 3 y 4 verás por qué vale la pena el trabajo extra en vim.


Moisés Serrano Samudio Médico de atención primaria, fotógrafo aficionado, apasionado de las tecnologías relacionadas con el EdTech y el eHealth y diseñador/desarrollador de sitios web de salud. Médico, apasionado del EdTech/eHealth y diseñador/desarrollador de sitios web de salud.
Moisés Serrano Samudio

@linkmoises

Médico de atención primaria, fotógrafo aficionado, apasionado de las tecnologías relacionadas con el EdTech y el eHealth.

Entradas relacionadas

Comentarios

Deja una respuesta

Su email no será publicado. Required fields are marked *