Tag Archives: TextMate

Autosave en TextMate

Hay una preferencia de TextMate (no muy conocida, a juzgar por las veces que se la he enseñado a alguien :) que guarda automáticamente tus ficheros cuando cambias de TextMate a otra aplicación:

TextMate: Save Files When Focus is Lost

Parece una tontería, pero no tener que acordarte de guardar los cambios cuando abres un navegador para recargar un HTML o una CSS es algo a lo que te acostumbras muy rápido.

De hecho, cuando uso un editor que no es TextMate, el 50% de las veces que falla algo es porque se me ha olvidado guardarlo antes de recargar la página en el navegador :P

Ahorrando tiempo con TextMate y Subversion

Como llevo una temporada sin postear, aprovecho unos segundos de tiempo libre para contaros un pequeño truco motivado por el espíritu de la Infinita Vagancia™ y el típico comentario de “molaría que TextMate hiciera…” (en este caso, de David Alonso)

El truco de hoy es la típica chorrada que te molesta 80 veces al día, y cuando la resuelves te das cuenta de lo poco que nos queremos en general (resolverlo no llevó más de 2 minutos)

Escenario: usas Subversion desde línea de comando, pero escribes tus mensajes de commit con TextMate (y si no lo haces, ahora te cuento cómo)

Problema: cuando escribes tu mensaje de commit, tienes que guardar el documento y luego cerrarlo para que se “registre” el mensaje y se haga el commit.

Idea: guardar y cerrar con un atajo de teclado, pero sólo en los mensajes de commit de Subversion.

Usando TextMate como editor de mensajes de commit

Si quieres usar TextMate para editar tus mensajes de commit, la cosa es bastante simple. Tienes que asegurarte de tener instalada la utilidad “mate” (usando el menú “Help » Terminal Usage…”) y añadir esto en tu fichero .bash_profile:

export SVN_EDITOR='mate -w'

Para ello, cuando hayas instalado ‘mate’ puedes abrir una ventana de Terminal.app (que por defecto inicia una sesión en tu carpeta $HOME) y escribir:

mate .bash_profile

Se abrirá el fichero .bash_profile si existe, y si no se creará.

Añade la línea “export …” donde quieras, cierra el fichero y cierra la ventana de Terminal.app (necesitas abrir una nueva para que el fichero .bash_profile se vuelva a leer)

Siguiente paso: el comando de TextMate

Una de las múltiples maravillas de TextMate es el sistema de “scoping”.

De una forma muy simplificada, el “scoping” es una forma de identificar qué tipo de texto estás editando. Mediante un sistema de expresiones regulares, TextMate puede reconocer en qué lenguaje estás programando; Y dentro de ese lenguaje, si estás editando un String, una función, un número…

Afortunadamente, los tipos que mantienen el bundle de Subversion tuvieron la deferencia de identificar cuándo un fichero es un mensaje de commit de Subversion.

El scope para un mensaje de commit es

text.subversion-commit

Otra maravilla de TextMate es que puedes limitar un comando a un scope, de forma que podemos escribir un comando que sólo funcione cuando estamos editando un mensaje de commit.

Para hacer nuestra vida más fácil, vamos a crear un comando que guarde y cierre el documento actual, y asignarlo a la combinación de teclas ⌘ + S (que ya estamos usando para guardar)

Así que abrimos el editor de Bundles con ⌃ + ⌥ + ⌘ + B y creamos un nuevo comando en el bundle de Subversion:

Nuevo Comando de TextMate

Le asignamos un bonito nombre:

Nombrando el Comando

lo rellenamos de contenido:

Comando Save and Commit

y cerramos la ventana del Bundle Editor.

A partir de ahora, cuando escribamos

svn ci nuestro_bello_fichero_modificado

se abrirá una ventana de TextMate con esta pinta:

Ventana de Commit

donde podemos escribir nuestro mensaje de commit, y al pulsar ⌘ + S para guardar, se cerrará automáticamente y empezará nuestro commit :)

Y eso es todo, de momento…

Taller de TextMate Avanzado en The Cocktail

Si viniste al primer curso de TextMate en el Aula The Cocktail y te quedaste con ganas de más, el próximo Jueves 26 de Abril a las 19:30h haremos la segunda parte.

TextMate es un editor de texto super potente, pero un pelín impenetrable (aunque no tanto como Emacs :)

Si ya usas TextMate a diario con cierta soltura, quizá te esté picando el gusanillo de crear tus propias automatizaciones (snippets, comandos, macros…) y no sabes por dónde empezar.

En este taller crearemos un “bundle” personal, donde almacenaremos comandos y snippets que simplifiquen nuestro trabajo con toda clase de texto (que no sólo de código vive el hombre)

Aprenderemos que crear un script que haga nuestro trabajo más sencillo y menos repetitivo es más fácil de lo que parece.

Imprescindible:

  • Un ordenador. Será un taller muy práctico, y la idea es que te lleves algún comando terminado :)
  • Ser ya usuario (más o menos asiduo) de TextMate. No vamos a ver casi nada básico.

Recomendable, aunque opcional:

  • Conocer algún lenguaje de programación para fabricar nuestros scripts. Los ejemplos que pondré usan Ruby, Bash y AppleScript sobre todo, pero te servirá cualquier lenguaje que venga de serie con OSX (Python, Perl, PHP…)

Apúntate desde ya en el wiki del Aula The Cocktail

Y si quieres estar informado de próximos eventos, visita la página del Aula The Cocktail en Upcoming

Technorati tags:

Presentando la lista de correo de TextMate en Castellano

Hace tiempo que andaba dándole vueltas al asunto de crear “algo” para hablar de TextMate en Castellano. Después de desechar la idea de un blog y de un wiki, finalmente me he decidido a crear un grupo de Google para estos menesteres.

La dirección del recién creado grupo es

http://groups.google.com/group/textmate-es/

y el primer mensaje viene a decir:

Este es la lista de correo de TextMate en Castellano. La temática del grupo es, obviamente, TextMate: comandos, snippets, trucos…

Se admiten off-topics, siempre que la temática tenga alguna relación con el universo en el que se use TextMate (herramientas adicionales, trucos de OS X, etc…)

Está ABSOLUTAMENTE PROHIBIDO iniciar flames sobre cual es el mejor editor de texto. El mejor editor de texto es el que mejor uses, y punto : )

¡Que empiece la diversión!

Pues eso… ¡apúntate a la lista! :)

Technorati tags: