domingo, 25 de abril de 2010

Dandole caña a VIM

Venga va, una de VIM. Como todo el mundo conocerá, VIM es uno de los grades editores de texto modo consola que existen. En todas las máquina UNIX viene instalado VI por defecto, que es su versión little ( de hecho VIM es la versión ampliada ). Bien, hay un montón de manuales sobre VIM en internet, muchísimos. Pero una buena herramienta para aprender a usar el vim es el vimtutor. Es un comando que ejecutas en la consola y se te va a abrir un manual/tutorial para que vayas siguiendo. Muy útil.
Instalar el VIM:
$ sudo aptitude install vim

Bien, este post es una recopilación de comandos que uso en Normal mode, que me ayudan a trabajar mucho mas rápido. Es de nivel medio-avanzado. Si nunca has usado VIM, ejecuta "vimtutor" en un terminal y peléate con el durante un par de días, mejor.

Para empezar vamos a ver los típicos de borrar:
dd = Borra la línea actual
d = Borra desde donde estás hasta el fin de la línea
d3 Borra la línea actual más las tres líneas inferiores a la actual

Estos mismos comandos se pueden hacer con solo copia, y no borrado:
yy = Copia la línea actual.
Y = Lo mismo que "yy"
y = Copia hasta el final
y3 = Copia la línea actual más las tres de arriba.

Pero para hacer el copiado de una manera mas humana tenemos el modo VISUAL. Este se activa pulsando la tecla "v". Con el modo VISUAL activado podemos, desde nuestra posición actual, mover las flechas de dirección y ir seleccionando un texto deseado. Veamos un ejemplo:
vy = Esto nos pone vim en modo VISUAL, seleccionamos hasta el final de la línea y vamos marcando las tres líneas de abajo para ser copiadas. Finalizamos con "y" para copiar. Si pulsásemos "d" en vez de "y", borraríamos el texto seleccionado.
Y si queremos copiar todo un párrafo? Pues muy simple. Para movernos al inicio del párrafo, en normal mode ( Pulsar Esc ) pulsamos "{". De este modo estaremos situados al inicio del párrafo. Ahora, para seleccionarlo debemos ponernos en modo visual y pulsar la tecla "}". Y el comando "y". Quedaría algo como lo siguiente:
{v}y
Esto se puede simplificar y ahorrarnos ponernos en modo visual, haciendo uso de "y" primero. Seria algo así:
{y} = Nos situamos al inicio del párrafo, le damos a copiar y le decimos hasta donde. Con "}" estamos diciendo que queremos copiar hasta el final de párrafo actual. La misma manera de hacer una cosa, pero de dos modos distintos.

Si queremos copiar desde un sitio, digamos A, hasta un sitio B, tenemos un par de comandos muy buenos.
Para empezar nos situamos en A, y lo "marcamos" con el siguiente comando:
ma
ahora, para nos movemos hasta B y pulsamos, para copiar o para borrar los comandos:
d'a = borrar
y'a = copiar
Osea, marcamos el inicio y después borramos o copiamos desde el final.

Otra cosa que puede parecer una tontería pero que va bastante bien es lo siguiente. En Normal mode pulsar
:10 = Esto nos mueve la línea número 10
:+15 = Esto nos mueve 15 lineas adelante de la línea actual.

Mas comandos interesantes. Para moverte por un texto, si el cursor se encuentra en la parte de arriba y tu quieres bajar tiene que "recorrerte" toda la pantalla ya visible con el cursor para "empujar" la pantalla por la parte de abajo, esto se soluciona con los siguientes comandos:
Control + e = Para bajar
Control + y = Para subir

Y ahora los mas simples, pero que se usan mucho.
o: inserta una línea nueva justo por debajo de la línea actual
O: inserta una línea nueva justo por encima de la línea actual
p: pega justo por debajo de la línea actual
P: pega por encima de la línea actual

Para salir y guardar del documento actual se tiene que pulsar ":wq". Un modo mas simple para hacer esto mismo es pulsando ZZ. Hace lo mismo. Para guardar, cada vez tenemos que pulsar:
:w
para ahorrarnos esto, podemos hacer uso del comando nmap:
:nmap ññ :w
"" se tiene que escribir también. Ahora, cuando pulsemos ññ en el teclado, se va a ejecutar el comando ":w". Bonito, verdad? Si queremos hacer que esta opción esté siempre disponible al inicio del vim, tenemos que ediar el fichero ~/.vimrc y añadir la linea mencionada anteriormente.

Me tomo la libertad de darte un consejo: No intentes memorizar un comando. Apúntate en un papelito un par de comandos que encuentres útiles y tenlo cerca de modo que cuando quieras usarlo sepas que lo tienes ahí. En una semana te sabrás todos los comandos que te resultan más útiles de memoria, los otros seguramente no merezca la pena aprendérselos, ya que los usas mucho menos. Y cada semana, busca algún comando nuevo. Y practica mucho, mucho!

Y ahora te pregunto: cuales son tus atajos/trucos que usas? Deja tu comentario. Saludos!

1 comentario:

  1. Un comando muy util es
    :! comando a usar.
    Permite ejecutar un comando en el terminal sin salirnos del editor
    Por ejemplo
    :! javac Clase.java

    ResponderEliminar