Microcurso de Vim

Lunes 2 de Junio de 2008

Por pedido de Baltha1, hago un microcurso de Vim, vi improved.

Vim es un editor de texto modal. Esto quiere decir que, a diferencia del Block de Notas, o Emacs2, apretar una tecla (de las normales) no necesariamente ingresa un caracter; todo depende del modo en el que estemos.

Esto tiene ventajas y desventajas. Una desventaja es que los nuevos tienen que acostumbrarse a los cambios de modo. Como el programa inicia en modo de edición, al ver que al apretar una tecla no pasa nada, muchos se desesperan.

La gran ventaja es que los comandos de edición del texto sólo necesitan que apretemos una tecla. (Aunque es posible incluir cosas como, digamos Ctrl+C y Ctrl+V, la forma normal en Vim es y, y p)

Hay tres modos principales:

  • Edición (también conocido como normal): Presionar una tecla modifica de alguna manera el texto, o nos cambia a uno de los otros modos.
  • Inserción: Cualquier caracter que ingresemos se insertará en el texto.
  • Visual: Básicamente, selección.

Insertar

El modo de inserción es el mas sencillo: lo único que podemos hacer ahí es, como su nombre indica, insertar texto.

Hay muchas formas de entrar en el modo de inserción. La más común es simplemente i. Para salir, simplemente apretamos Escape.

Los comandos de inserción (únicamente inserción) son:

  • i: Insertar bajo el cursor.
  • a: Insertar después del cursor.
  • I: Insertar al comienzo de la línea.
  • A: Insertar al final de la línea.
  • o: Insertar en una línea nueva, abajo de la actual.
  • O: Insertar en una línea nueva, arriba de la actual.

…Sí, son muchos… pero al principio nos basta con i (y a veces a).

Editar

Algunos comandos útiles son (y esta lista está lejos de ser exhaustiva):

  • d: borrar
  • c: reemplazar
  • y: “arrancar”. Es como “copiar”. Para pegar usamos p

Estos últimos comandos tienen una capacidad que es lo que da a vim su poder. Podemos combinar estos comandos con una cuenta, y un comando de movimiento.

Por ejemplo, c9w: desde la posición actual, hasta nueve palabras más adelante, reemplazar.

Moverse

Esto trae una nueva (y amplia) serie de comandos: los de movimiento. Los más comunes son, simplemente, las flechas; pero Vim (habiéndose originado en vi) hace que sus comandos requieran alejarse de la fila central lo menos posible. h, j, k y l, son, respectivamente, izquierda, abajo, arriba, y derecha.

w avanza hasta el comienzo de una palabra, y b retrocede, mientras que con e avanzamos al final de una palabra. Sus versiones en minúscula cuentan los signos de puntuación como palabras individuales, mientras que la mayúsculas las cuentan como parte de la palabra.

fletra avanza hasta la próxima letra, incluyéndola (la que presionamos después de f, claro), y con F se retrocede, mientras que t (y T) la excluyen.

Otros

Para guardar, apretamos : (para el último modo interesante, el de línea de comandos), y w, seguida de enter. Con :q salimos. (Y con :wq guardamos y salimos inmediatamente.)

Un poquito más fácil

Los comandos de edición que vimos arriba son algo incómodos porque nos obligan a apretar (al menos) dos teclas para hacer un cambio. Las versiones “con movimiento incluido (un caracter hacia adelante)” son x y s para borrar y reemplazar, respectivamente. Estos también aceptan una cuenta, así 3s modifica los próximos tres caracteres.

También podemos poner una cuenta antes de un comando de inserción, y esto insertará varias copias de lo que escribamos.

:q

Esta es apenas una primera mirada a todo el poder de Vim, pero el punto de esta explicación es emseñar apenas lo suficiente para empezar a usarlo.

Entre las cosas que no nombro, está la colorización de sintaxis, macros, la capacidad de mapear cualquier letra a cualquier cosa que queramos (podemos sobreescribir incluso las letras que están ocupadas, si no nos gusta la configuración), el .vimrc, y muchas, MUCHAS cosas más…

  1. De paso, feliz cumpleaños a Baltha y El Baltha
  2. ¡Herejía!

Por favor, dejá un comentario, o un trackback desde tu sitio. Podés seguir la conversación con el Feed de comentarios de este post.

Un Comentario a “Microcurso de Vim”

  1. Tehsis dijo:

    Lunes 2 de Junio de 2008, 06:04

    dejo mi granito de arena a la causa… http://tehsis.blogspot.com/2008/02/ventanas-en-vim.html

Comentá:

Entrá con tu cuenta, registrate, o escribí tus datos:

XHTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">