Archivos por Etiqueta: GVim

Pese a que en mi paso a Mac, intenté darle una oportunidad a Textmate, no he podido. Y es que tras unas cuantas semanas me he dado cuenta de que mis líneas de código tenían lindezas como :wq y cosas así. Tuve que volver a Vim. Por varios motivos:

  • Me he hecho a él
  • Aún no conozco sus límites
  • Lo puedo ejecutar en cualquier máquina: hoy he tenido que picar código en un Windows, y Vim y el vimrc que llevo siempre conmigo, me han salvado la vida.

El caso es que GoLo pese a que suele usar Vim para modificar cosas del sistema, a la hora de la verdad abre el Eclipse, y para según que cosas es normal (yo soy el primero que lo hace) pero para programar en Python, Perl o Php, me parece una burrada. Desde que empecé a usar Vim de verdad, suelo llevar encima una pequeña Moleskine donde voy apuntando truquillos que me van haciendo más y más rápido a la hora de picar código. De este cuadernito he hecho una selección que le vendrá a GoLo que ni pintada :D Si no eres GoLo, también puedes usarla :D ¡Y hasta comentar!

Inserciones (en modo normal)

  • i : empiezas a escribir a la izquierda de la letra sobre la que tienes el cursor
  • I : empiezas a escribir al principio de la línea en la que estás
  • a : empiezas a escribir a la derecha de la letra donde tienes el cursor
  • A : empiezas a escribir al final de la línea en la que estás
  • o : empiezas a escribir en la linea de abajo. Importantísimo.
  • O: empiezas a escribir en la línea de arriba

Moverse por el texto (en modo normal)

  • e : pone el cursor al final de la línea
  • b: pone el cursor al principio de la línea
  • yy : copia la línea actual
  • dd : corta la línea actual
  • y3y o d3d: copia o corta 3 líneas, hacia abajo desde la que está el cursor. Esto es genial para mover grandes bloques de texto de un lugar a otro. (Si GoLo, si, como me dijiste que hace el Eclipse :P )

Otros, pero no menos importantes

  • :1,$ s/hola/mundo/g : reemplaza de la línea 1 hasta el final todas las palabras “hola” por “mundo”. Si cambiamos $ por un 5, lo hará en las 5 primeras líneas, y si cambiamos el 1 por un 5 lo hará de la línea 5 hasta el final. Si solo lo queremos para un pequeño bloque de texto, pues, tan sencillo como poner las dos líneas entre las que quieres acotar. En que le coges el tranquillo, lo echas de menos en todas las
  • :set nu : activa la numeración
  • :tabnew : abre nueva pestaña
  • gt : para moverse entre las pestañas. Comodísimo.
  • :tab sba : abre todos los buffers activos en pestañas. Utilísimo.

Me dejo muchos en el tintero, pero estos son imprescindibles :D Seguiré añadiendo más poco a poco para la sección de Vím :D GoLo, espero haberte convencido :P

Vim es mi editor de texto favorito. Es ligero, potente, y, una vez que te haces con él, es muy cómodo de manejar. Pero como ya comenté una vez, introducir comandos puede volverse a veces algo tedioso.

Por ejemplo: si queremos abrir una nueva pestaña, deberíamos introducir el comando :tabnew y pulsar la tecla de enter. Si tuviéramos que hacer esto cada vez, y usáramos muchas pestañas, perderíamos mucho tiempo tecleando el comando. Hay dos formas de solucionar esto. Una es utilizando el comando ., que repite el último comando que hemos utilizado, o crear una combinación de teclas que abra una nueva pestaña con la opción map en nuestro fichero de configuración (.vimrc, .gvimrc, _vimrc…o como sea). Es muy sencillo: aquí va un ejemplo de algunos mapeos.

map <c-t><CR> :tabnew  (haciendo Control + t, abriremos una nueva pestaña)
map <c-Tab><CR> :tabnext (Control + tabulador, nos moverá entre las pestañas)

Como podréis ver en el :help key-notation, estas son algunas de las combinaciones que se pueden utilizar:

<BS> Tecla backspace
<Tab>Tabulador
<CR> Tecla enter
<Esc>Escape
<Space>Tecla de espacio
<del> Suprimir
<S-Up>Shift-cursor-arriba
<S-Down>Shift-cursor-abajo
<S-Left>Shift-cursor-izquierda
<S-Right>Shift-cursor-derecha
<C-Left>Control-cursor-izquierda
<C-Right>Control-cursor-derecha
<F1> -<F12> Teclas de función
<S-F1>-<S-F12> Shift- teclas de función
<Insert>Tecla de insertar
<End>Tecla de fin

<S- …>Shift + …

<C- …>Control + …


<A- …>Meta / Alt + …

Esto puede ser muy útil para comandos complicados que tengáis que manejar amenudo, como el de imprimir. Si incluís en vuestro archivo de configuración map :%w !lp , cada vez que uséis la combinación Control + p, os imprimirá en papel el archivo que estéis utilizando. Y así con cualquier cosa.


CreamEn el artículo anterior comenté las incontables maravillas de Vim, el editor mas potente que conozco. En este artículo me he propuesto comentar las funcionalidades, ventajas y desventajas de Cream, una configuración para Vim que hace mas usable este completo editor. Detrás de la simple aparencia de la imagen de la izquierda, se esconde (casi) todo el potencial de Vim, pero mediante un manejo mas común, con los atajos de teclado estándar.

Cream puede (al igual que Vim) adaptarse a tus necesidades, y es que es fácilmente configurable a golpe de ratón: Puedes cambiar el esquema de colores y elegir entre varios, quitar y poner la barra de tareas (normalmente no hace falta, así que la tengo desactivada), activar la funcionalidad de pestañas para navegar entre varios archivos…

Por defecto, tan solo es un editor normal y corriente, sin los comandos de Vim, pero es posible habilitar la opción expert para poder insertar comandos, así que si, como yo, te sientes más cómodo con estos comandos tendrás un editor hecho a tu medida. Aunque, sigo prefiriendo GVim para el entorno gráfico, porque no es mucho menos atractivo visualmente y recordemos que los comandos pueden usarse en cualquier plataforma, tenga entorno gráfico o no, y esta es posiblemente la gran desventaja de Cream, que no sirve para consola. Claro, que si no tienes que trabajar en un terminal de texto, es, casi sin duda, tu editor.

Además, al igual que en Vim (hay que recalcar que Cream es Vim) puede ampliarse con todos los scripts que comentaba en el post anterior.

Hace no mucho hablé de Vim (entre otro software) como mi editor de textos favorito por muchas razones. Es flexible a mis necesidades, puede ser simple o complejo y hace casi cualquier cosa, desde (obviamente) visualizar y editar un archivo txt hasta compilar y ejecutar código, ayudándote además con una interfaz agradable, con resaltado de sintaxis en colores y autocompletado.

Vim tiene muchas ventajas, y es una herramienta potente y muy útil, pero tiene una desventaja: que puede echar por tierra sus cientos de virtudes, y es que es muy complicado de manejar. Es un editor que se maneja con una serie de comandos, que no son los habituales (por ejemplo, guardar fichero no es control + s, si no :w. Sinceramente estos comandos se aprenden en dos patadas haciendo el “curso de aprendizaje” que trae Vim (ejecuta vimtutor y empezará a enseñarte sus innumerables maravillas).

La eficiencia de los comandos es simple: una vez que te acostumbras a ellos (me hice a los básicos en apenas 10 minutos) trabajas muy rápido con cualquier fichero, y como sirven tanto en el Vim de consola, como en el que tiene intetfaz gráfica (GVim) pues te es indiferente dónde estés trabajando.

Otra ventaja que tiene es que es multiplataforma, con lo que se puede trabajar con él en cualquier sitio. Esto parece una tontada, pero hace tiempo, yo usaba Gedit (el editor de Gnome) y me encantaba, pero si en la universidad tenía que usar windows, pues no podía trabajar con Gedit. Desde que uso Vim esto no me pasa, además consume mucha menos memoria y hace muchas mas cosas.

Otra cosa que me encanta de Vim es que es tan extensible como quieras, ya que tienes a tu disposición decenas de scripts para adaptarlo a tus necesidades. Yo, por ejemplo, le he añadido plugins para poder trabajar en Java, Perl y Ruby, pero hay muchas mas cosas. Estos plugins me han hecho la vida más fácil, ya que ahora puedo programar en Perl y Ruby cómodamente, así como editar código Java evitándome tener que ejecutar Jidea o Eclipse para editar y ejecutar un pequeño fragmento de código.

Lo pintas muy bonito pero es demasiado complicado para mí. ¿Me recomiendas otro editor parecido pero fácil?

Si no te haces a los comandos, o te resulta mas cómodo trabajar con menos atajos de teclado y del tipo control+ S o control+ Z, mi recomendación es Cream, una configuración para Vim que lo hace usable para todo el mundo y que comentaré en el próximo post.