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.
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.
Ya conoces los comandos necesarios para sobrevivir. Es hora de aprender algunos comandos más. Estas son mis sugerencias:
a
→ insertar después del cursoro
→ insertar una nueva línea después de la actualO
→ insertar una nueva línea antes de la actualcw
→ reemplazar desde el cursor hasta el final de la palabra0
→ 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íneag_
→ va al último carácter que no esté en blanco de la línea/patrón
→ buscar patrónP
→ 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
.u
→ deshacer<C-r>
→ rehacer: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.
@linkmoises
[…] con la entrada anterior, una vez dominados los comandos básicos de supervivencia y comodidad en vim, estamos listos para […]