Vim, ese pedazo de editor

Hola hijos,

Hoy he estado profundizando un poco en Vim y he estado viendo algunos vídeos en youtube sobre ello. El tema es que lo utilizo constantemente como editor, pero me siento un poco limitado con el partido que le saco así que estoy investigando para subir un poco el nivel. Sí que es cierto que, en general, cuando me paso a otro editor diferente tengo problemas porque intento ejecutar teclas rápidas que no existen y trabajar con los diferentes modos de Vim, pero un poco más de manejo me haría mucho más eficiente. En fin.

Hoy voy a hablaros un poco de Vim.

Vim es un editor de texto plano muy potente, principalmente se usa para programar o para editar simples archivos de texto (esta entrada ha sido escrita en Markdown usando Vim). Como originalmente fue diseñado para trabajar en una terminal, aunque también hay versiones con interfaz de escritorio (aunque no se usen tanto como el original), está completamente orientado a usar el teclado de la forma más eficiente. Esto significa que el plan del desarrollador es que nunca tengamos que apartar las manos de las letras del teclado. De esta forma podemos centrarnos en escribir y no en coger el ratón para movernos etc. Para conseguir esto se basa en un par de conceptos básicos:

  • Diferentes modos de ejecución.
  • Millones de teclas rápidas.

Modos:

Vim dispone de 4 modos de ejecución:

  • Modo normal: Es el modo habitual donde se ejecutan casi todos los comandos, se navega por el archivo, etc.
  • Modo insertar: No hay comandos que valgan aquí. Este es el modo de edición, lo que se teclea va al contenido del archivo.
  • Modo visual: Es un modo para seleccionar texto, tiene varios modos: por línea, por bloque y por carácter.
  • Modo ejecución: Parecido a ejecutar órdenes en el modo normal en la línea de comandos (:) pero este modo no nos devuelve al modo normal al ejecutarlos. Sirve para hacer procesamiento, etc. Investigad un poco, es un poco más complicado y está fuera del alcance de este artículo.

En general, el modo normal será el modo en el que siempre estemos y tendremos que movernos a los otros desde él.

Si quisiéramos activar el modo visual serviría pulsando la tecla v (de visual) y entraríamos en el modo, para salir, pulsar ESC. Como he dicho, visual tiene varios modos, la v sólo activa el de caracteres, el normal, el de bloques se activa con CTRL+v y el de línea con SHIFT+v.

Lo mismo pasa con el de edición, hay muchos modos de entrar a él. Se puede entrar añadiendo una linea debajo de la actual (o) o encima (O), escribiendo caracteres en la posición del cursor (i) o en la siguiente (a), al final de la línea (A) o al principio (I), etc (más abajo hay un enlace de todos estos comandos). Todos nos llevan al modo insertar pero a diferente posición. Para salir, ESC, como desde  visual.

El modo ejecución es más loco, para entrar hay que pulsar Q (mayúscula, sí) y, para salir, escribir visual, aunque, si estáis empezando no os recomiendo que entréis porque senos suele olvidar cómo salir y probamos de todo. Sabiendo esto, los desarrolladores han añadido una línea que te dice cómo salir cuando se ve que tienes problemas. 😉

Teclas rápidas:

Las teclas rápidas se utilizarán en los modos normal y visual. Definen millones de operaciones diferentes, que pueden ser concatenadas, guardadas en macros, repetidas, etc. Es extremadamente complejo pero muy potente.

Estas teclas pueden servir para navegar por el fichero (como h,j,k,l), borrar (d), cambiar de modo (i, a, v), copiar (y), pegar (p), grabar macros (q), repetir la última operación (.) y millones de cosas más. Además, estas teclas pueden combinarse para hacer cosas más complicadas añadiendo repeticiones (como borrar 10 líneas d10d) o utilizando indicadores que indicarán desde dónde hasta dónde queremos utilizar la orden (como borrar un párrafo con: delete in paragraph dip), llamados “motions”.

A parte de esto, podremos buscar o sustituir por el archivo usando / o ejecutar órdenes más complejas usando : o entrando al modo de ejecución.

El chorro de teclas que menciono es extremadamente pequeño en comparación con lo que existe, pero lo que tienen en común es que nunca te obligan a apartar los dedos del teclado permitiéndote ser rápido como el rayo.

Podéis ver más en internet o en la ayuda de Vim (:help). Aquí os dejo una chuleta:

http://bullium.com/support/vim.html

Extras:

Pero eso no es nada. Vim puede configurarse hasta el infinito y más allá. Pueden añadirse módulos, scripts y configuraciones que hagan que el editor se ajuste a nuestras necesidades. Desde comprobación de sintaxis y ortografía, hasta un módulo de XMPP o plugins para postear en WordPress.

Además permite navegar por tus archivos, abrir diferentes pestañas, ejecutar órdenes en la terminal y muchísimas más cosas.

¿Por qué Vim?

La pregunta es, entonces: ¿Por qué usar Vim si es tan complicado?

Básicamente por eso.

La complicación que tiene permite que lo llevemos al extremo en la dirección que nos interese o que lo configuremos de forma diferente dependiendo de lo que estemos haciendo. Es una locura.

Como ya he mencionado antes, nos hace realmente eficientes también y eso siempre es interesante, tanto al escribir como al programar.

Como me gusta, seguiré escribiendo cosas al respecto, espero que os parezca interesante. Os animo a que lo probéis.

Un abrazo.


He hablado de Vim en otras entradas aunque sea de pasada, aquí las tenéis:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s