Cómo empezar con Vim: Lo básico
Recuerdo la primera vez que me encontré con Vim. Era un estudiante universitario, y los ordenadores del laboratorio del departamento de informática tenían instalado Ubuntu Linux. Aunque había estado expuesto a diferentes variaciones de Linux (como RHEL) incluso antes de mis años universitarios (¡Red Hat vendía sus CDs en Best Buy!), esta fue la primera vez que necesité usar el sistema operativo Linux regularmente, porque mis clases me lo exigían. Una vez que empecé a usar Linux, como muchos otros antes y después de mí, empecé a sentirme como un «verdadero programador»
1_xkcdcartoon.jpg
Programadores de verdad, por xkcd
Los estudiantes podían utilizar un editor de texto gráfico como Kate, que estaba instalado en los ordenadores del laboratorio por defecto. Para los estudiantes que podían usar el shell pero no estaban acostumbrados al editor basado en la consola, la opción popular era Nano, que ofrecía buenos menús interactivos y una experiencia similar al editor de texto gráfico de Windows.
Yo usaba Nano a veces, pero había oído cosas impresionantes sobre Vi/Vim y Emacs y realmente quería probarlos (principalmente porque parecían geniales, y también tenía curiosidad por ver qué tenían de bueno). Usar Vim por primera vez me daba miedo, no quería estropear nada. Pero una vez que le cogí el tranquillo, las cosas se hicieron mucho más fáciles y pude apreciar las potentes capacidades del editor. En cuanto a Emacs, bueno, más o menos me rendí, pero me alegro de haber seguido con Vim.
En este artículo, recorreré Vim (basándome en mi experiencia personal) lo suficiente para que puedas manejarlo como editor en un sistema Linux. Esto no le convertirá en un experto, ni siquiera arañará la superficie de muchas de las potentes capacidades de Vim. Pero el punto de partida siempre importa, y quiero hacer que la experiencia inicial sea lo más fácil posible, y que puedas explorar el resto por tu cuenta.
Paso 0: Abrir una ventana de consola
Antes de saltar a Vim, necesitas hacer una pequeña preparación. Abra un terminal de consola desde su sistema operativo Linux. (Dado que Vim también está disponible en MacOS, los usuarios de Mac también pueden utilizar estas instrucciones.)
Una vez que se abra una ventana de terminal, escriba el comando ls para listar el directorio actual. Luego, escriba mkdir Tutorial para crear un nuevo directorio llamado Tutorial. Entra en el directorio escribiendo cd Tutorial.
Eso es todo para la preparación. Ahora es el momento de pasar a la parte divertida: empezar a usar Vim.
Paso 1: Crear y cerrar un archivo Vim sin guardar
¿Recuerdas cuando dije que me daba miedo usar Vim al principio? Bueno, lo que me daba miedo era pensar: «¿y si cambio un archivo existente y lo estropeo todo?». Al fin y al cabo, varias tareas de informática me exigían trabajar sobre archivos existentes modificándolos. Quería saber: ¿Cómo puedo abrir y cerrar un archivo sin guardar mis cambios?
La buena noticia es que puedes usar el mismo comando para crear o abrir un archivo en Vim: vim <Nombre_de_archivo>, donde <Nombre_de_archivo> representa el nombre del archivo de destino que quieres crear o modificar. Vamos a crear un archivo llamado HolaMundo.java escribiendo vim HolaMundo.java.
¡Hola, Vim! Ahora, aquí hay un concepto muy importante en Vim, posiblemente el más importante de recordar: Vim tiene múltiples modos. Aquí hay tres que debes conocer para hacer lo básico de Vim:
Modo | Descripción |
---|---|
Normal | Por defecto; para la navegación y edición simple |
Insertar | Para insertar y modificar texto de forma explícita |
Línea de comandos | Para operaciones como guardar, salir, etc. |
Vim tiene otros modos, como Visual, Select y Ex-Mode, pero los modos Normal, Insert y Command Line son suficientes para nosotros.
Ahora estás en el modo Normal. Si tienes texto, puedes moverte con las teclas de flecha u otras pulsaciones de navegación (que verás más adelante). Para asegurarte de que estás en modo Normal, simplemente pulsa la tecla Esc (Escape).
Consejo: Esc cambia al modo Normal. Aunque ya estés en modo Normal, pulsa Esc sólo para practicar.
Ahora, esto será interesante. Pulsa : (la tecla de los dos puntos) seguida de ¡q! (es decir, :q!). Su pantalla se verá así:
Pulsar los dos puntos en modo Normal cambia Vim a modo Línea de Comandos, y el comando :q! sale del editor Vim sin guardar. En otras palabras, abandona todos los cambios. También puede utilizar ZQ; elija la opción que le resulte más conveniente.
Una vez que pulse Enter, ya no debería estar en Vim. Repite el ejercicio unas cuantas veces, sólo para cogerle el tranquillo. Una vez que lo hayas hecho, pasa a la siguiente sección para aprender a hacer un cambio en este archivo.
Paso 2: Hacer y guardar modificaciones en Vim
Reabre el archivo escribiendo vim HolaMundo.java y pulsando la tecla Enter. El modo de inserción es el que permite realizar cambios en un archivo. Primero, pulsa Esc para asegurarte de que estás en modo Normal, y luego pulsa i para pasar al modo Insertar. (Sí, es la letra i.)
En la parte inferior izquierda, deberías ver — INSERT –. Esto significa que está en el modo Insertar.
Escriba algo de código Java. Puedes escribir lo que quieras, pero aquí tienes un ejemplo para que lo sigas. Tu pantalla se verá así:
public class HelloWorld {
public static void main(String args) {
}
}
¡Muy bonito! Fíjate en cómo el texto está resaltado con los colores de resaltado de sintaxis de Java. Como has iniciado el archivo en Java, Vim detectará el color de la sintaxis.
Guarda el archivo. Pulsa Esc para dejar el modo de inserción y entrar en el modo de línea de comandos. ¡Escriba : y siga con x! (es decir, dos puntos seguidos de x y !). Pulsa Enter para guardar el archivo. También puede escribir wq para realizar la misma operación.
Ahora ya sabe cómo introducir texto utilizando el modo Insertar y guardar el archivo usando :x! o :wq.
Paso 3: Navegación básica en Vim
Aunque siempre puede utilizar sus amistosos botones de flecha Arriba, Abajo, Izquierda y Derecha para moverse por un archivo, eso sería muy difícil en un archivo grande con casi innumerables líneas. También es útil poder saltar dentro de una línea. Aunque Vim tiene una tonelada de características de navegación impresionantes, la primera que quiero mostrarte es cómo ir a una línea específica.
Pulsa la tecla Esc para asegurarte de que estás en modo Normal, luego escribe :set number y pulsa Enter.
¡Voila! Verás los números de línea en la parte izquierda de cada línea.
:2
Ahora pasa a la línea 3.
Pero imagina un escenario en el que estás tratando con un archivo que tiene 1.000 líneas y quieres ir al final del archivo. ¿Cómo puede llegar hasta allí? Asegúrate de que estás en modo Normal, entonces escribe :$ y pulsa Enter.
¡Estarás en la última línea!
Ahora que sabes cómo saltar entre las líneas, como extra, vamos a aprender cómo moverte al final de una línea. Asegúrate de que estás en una línea con algo de texto, como la línea 3, y escribe $.
Ahora estás en el último carácter de la línea. En este ejemplo, la llave rizada abierta está resaltada para mostrar a dónde se ha movido el cursor, y la llave rizada de cierre está resaltada porque es el carácter que coincide con la llave rizada abierta.
Eso es todo para la navegación básica en Vim. Espera, no salgas del archivo, sin embargo. Pasemos a la edición básica en Vim. Sin embargo, siéntase libre de tomar una taza de café o té.
Paso 4: Edición básica en Vim
Ahora que sabe cómo navegar por un archivo saltando a la línea que desea, puede utilizar esa habilidad para hacer algo de edición básica en Vim. Cambie al modo de inserción. (¿Recuerdas cómo hacerlo, pulsando la tecla i?) Claro que puedes editar usando el teclado para borrar o insertar caracteres, pero Vim ofrece formas mucho más rápidas de editar archivos.
Muévete a la línea 3, donde aparece public static void main(String args) {. Pulsa rápidamente la tecla d dos veces seguidas. Sí, eso es dd. Si lo has hecho con éxito, verás una pantalla como ésta, en la que la línea 3 ha desaparecido, y cada línea siguiente se ha movido hacia arriba en una (es decir, la línea 4 se ha convertido en la línea 3).
Ese es el comando delete. No tengas miedo. Dale a u y verás la línea borrada recuperada. Ufff. Este es el comando deshacer.
La siguiente lección es aprender a copiar y pegar texto, pero primero hay que aprender a resaltar texto en Vim. Pulsa v y mueve tus botones de flecha izquierda y derecha para seleccionar y deseleccionar texto. Esta función también es muy útil cuando estás mostrando código a otras personas y quieres identificar el código que quieres que vean.
Desplázate hasta la línea 4, donde dice System.out.println(«Hola, Opensource»);. Resalta toda la línea 4. ¿Ya está? Bien, mientras la línea 4 sigue resaltada, pulsa y. Esto se llama modo yank, y copiará el texto al portapapeles. A continuación, crea una nueva línea debajo introduciendo o. Ten en cuenta que esto te pondrá en modo Insertar. Salga del modo Insertar pulsando Esc, y luego pulse p, que significa pegar. Esto pegará el texto copiado de la línea 3 a la línea 4.
Como ejercicio, repita estos pasos pero también modifique el texto en sus líneas recién creadas. ¡Además, asegúrese de que las líneas estén bien alineadas.
Sugerencia: Debe alternar entre el modo Insertar y el modo Línea de comandos para realizar esta tarea.
Una vez que haya terminado, guarde el archivo con el comando x! Eso es todo para la edición básica en Vim.
Paso 5: Búsqueda básica en Vim
Imagina que el jefe de tu equipo quiere que cambies una cadena de texto en un proyecto. Cómo puedes hacerlo rápidamente? Es posible que quieras buscar la línea utilizando una determinada palabra clave.
La funcionalidad de búsqueda de Vim puede ser muy útil. Entra en el modo Línea de comandos (1) pulsando la tecla Esc, y luego (2) pulsando dos puntos :. Podemos buscar una palabra clave introduciendo :/<SEARCH_KEYWORD>, donde <SEARCH_KEYWORD> es la cadena de texto que quieres encontrar. Aquí estamos buscando la cadena de palabras clave «Hola». En la imagen de abajo, faltan los dos puntos pero son necesarios.
Sin embargo, una palabra clave puede aparecer más de una vez, y puede que esta no sea la que quieres. Entonces, ¿cómo se navega para encontrar la siguiente coincidencia? Basta con pulsar la tecla n, que significa siguiente. Asegúrate de que no estás en el modo de inserción cuando hagas esto
Paso extra: Usar el modo de división en Vim
Eso cubre más o menos todo lo básico de Vim. Pero, como un bono, quiero mostrarte una característica genial de Vim llamada modo de división.
Sal de HelloWorld.java y crea un nuevo archivo. En una ventana de terminal, escriba vim GoodBye.java y pulse Enter para crear un nuevo archivo llamado GoodBye.java.
Ingrese el texto que desee; yo decidí escribir «Goodbye». Guarda el archivo. ¡(Recuerde que puede utilizar :x! o :wq en el modo Línea de Comandos.)
En el modo Línea de Comandos, escriba :split HolaMundo.java, y vea lo que sucede.
¡Vaya! ¡Fíjese en eso! El comando split ha creado ventanas divididas horizontalmente con HolaMundo.java arriba y Adiós.java abajo. Cómo puedes cambiar entre las ventanas? Mantén pulsado Control (en Mac) o CTRL (en PC) y luego pulsa ww (es decir, w dos veces seguidas).
Como ejercicio final, intenta editar GoodBye.java para que coincida con la pantalla de abajo copiando y pegando desde HelloWorld.java.
¡Guarda ambos archivos, y ya has terminado!
TIP 1: Si quieres organizar los archivos verticalmente, utiliza el comando :vsplit <FILE_NAME> (en lugar de :split <FILE_NAME>, donde <FILE_NAME> es el nombre del archivo que quieres abrir en modo Split.
TIP 2: Puedes abrir más de dos archivos llamando a tantos comandos split o vsplit adicionales como quieras. Pruébalo y verás cómo queda.