viernes, noviembre 27, 2009

Vim: Uso de pestañas (tabs)

Durante los últimos diez años, mi editor de texto favorito ha sido Vim, basado en el popular editor Vi creado por Bill Joy - uno de los creadores de Sun Microsystems - para usar en los entornos Unix. Existen versiones para todos los sistemas operativos, viene de serie en muchas distribuciones Linux y en MacOS X. Tiene también una versión para Windows.

Me voy a centrar en una funcionalidad que ha aparecido en la versión 7 del editor: La posibilidad de usar pestañas (tabs) para poder editar los textos. Las pestañas empezaron a aparecer en las interfaces gráficas para poder manejar varios documentos en una misma ventana. Puede verse en funcionamiento en el vim en la siguiente captura de pantalla:1

Captura de MacVim con interfaz de tabs
Captura del MacVim

Para crear una nueva pestaña, se introduce en modo comando la orden tabnew o tabnew fichero, nos creará una nueva pestaña, vacía en el primer caso o cargará el fichero que se le indique en el segundo.

Para movernos de una pestaña a otra, en modo comando usamos las siguientes órdenes en modo comando:

  • tabn, para irnos a la siguiente pestaña.
  • tabp, para irnos a la pestaña previa.
  • tabfirst, para irnos a la primera pestaña.
  • tablast, para irnos a la última pestaña.

En el caso de estar usando una versión con interfaz gráfica es más cómodo usar el ratón para moverse entre las distintas pestañas. Existen atajos rápidos de teclado, como Ctrl-pagedown para irnos a la siguiente pestaña o Ctrol-pageup para irnos a la pestaña previa.

Si se quiere ejecutar una orden en todas las pestañas, Podemos utilizar el comando tabdo para ejecutar una orden de vim en todas las pestañas que tenemos abiertas en la ventana actual. Por ejemplo si se se quiere buscar en todas las ventanas abiertas la ocurrencia de la cadena drizzt y sustituirla por elminster, se puede usar la orden tabdo %s/drizzt/elminster/g

Para cerrar una pestaña usamos el comando tabclose. Este comando puede fallar en algunas circunstancias descritas en el manual.

Se puede reorganizar las pestañas con ayuda del comando tabmove n, donde n es la posición donde queremos que esté la pestaña donde estamos introduciendo el comando. La primera pestaña es la número 0 y se numera de manera ascendente. Así por ejemplo, supongamos que tenemos cuatro pestañas abiertas y estamos editando en la última. Si introducimos el comando tabmove 0, la pestaña que estamos editando se colocará en la primera posición.

Muchos comandos que abren una nueva ventana, si se utiliza el modificador tab al principio de la línea, abrirán una nueva pestaña. Por ejemplo, queremos consultar la ayuda de las pestañas y que se abra una nueva con la misma. En modo comando introducimos la orden tab help tabpage, y vim creará la pestaña y cargará la ayuda. Lástima que no funcione a la hora de ejecutar un comando para capturar la salida del mismo.

Ayuda en el vim sobre las pestañas

Se puede consultar la ayuda sobre el uso de pestañas en el vim en con las siguientes órdenes en modo comando:
  • h new-tab-pages
  • h tab-page-intro
  • h tab-page-commands
  • h tab-page-other
  • h tab-page

Charityware

Una particularidad de vim es que es software libre, gratuito. Se puede copiar y modificar todo lo que se quiera. Eso sí, el autor desea que si se puede, se haga una donación a ICCF Holland, una ONG que se encarga de gestionar una clínica en Uganda.Si introducimos en modo comando h iccf, nos dará información del proyecto en el que el autor del vim, Bram Moolenaar, está involucrado.

Referencias

  1. Esta captura es de MacVim, la versión del vim para MacOS X usando Cocoa.
  2. Vim tips: Using tabs

Technorati Tags: vim

7 comentarios:

Anónimo dijo...

Hay una forma muchisimo más rápida de cambiar de pestaña.

[n] g t

Donde n pon el número de pestaña.

Unknown dijo...

Hay otra manera mas rápida:

C-x o para el siguiente,
o
C-x b [TAB] para mostrar la lista

Ah, no.... que esto es en emacs ;-)

Uso vi para tareas simples, pero si quieres manejo de multiples ficheros y que el editor se adapte al tipo de fichero que escribes,.... prueba Emacs. La misma funcionalidad de las tabs, lleva existiendo en Emacs (como otras muchas) desde hace muchos años, y funciona tambien en modo texto.

Drizzt dijo...

Antes usaba el emacs, así que sí, sé todo lo que es capaz de hacer, pero la verdad, acabé un poco frito de él ;).

Recuerdo usarlo tanto para leer correo como para las news, pero acabé migrando a mutt para el correo y slrn para news ...

Anónimo dijo...

¿Se puede hacer que cuando abramos múltiples ficheros desde línea de comandos, estos se abran directamente en pestañas? Combinando eso y tabdo sería interesante...

Drizzt dijo...

Si, si se puede, usa la opción -p

Por ejemplo:

gvim -p 1.txt 2.txt 3.txt

Unknown dijo...

Podeis añadir los siguiente a vuestro .vimrc:

map >F6< :tabp>CR<
map >F7< :tabn>CR<

Para cambiar rapidamente entre pestañas

Unknown dijo...

Los simbolos son al reves, estilo HTML