viernes, enero 27, 2012

Gedit como IDE: Parte 2

Hace tiempo les comencé a platicar sobre cómo podemos tener Gedit como IDE, aunque me quedé a medias, pues aún falta esa parte de poder compilar y ejecutar (en general, añadir comandos personalizados). 

En la primer parte del tutorial, habíamos instalado gedit-plugins, una serie de complementos para Gedit, en esta ocasión nos centraremos en uno en particular: Herramientas Externas.

Este plugin nos permite crear nuestros propios comandos dentro de Gedit usando Shell Script. ¿Qué tiene de especial? Además de que Shell Script permite a Gedit interactuar con el sistema, también se manejan algunas variables que nos facilitan jugar con los documentos:

  • Comandos para el documento activo:
$GEDIT_CURRENT_DOCUMENT_NAME - Te devuelve el nombre del archivo (con todo y extensión).
$GEDIT_CURRENT_DOCUMENT_DIR - Te devuelve el directorio del archivo.
$GEDIT_CURRENT_DOCUMENT_PATH - Te devuelve toda la ruta al archivo.

  • Para todos los documentos abiertos:
$GEDIT_DOCUMENTS_PATH - Te devuelve la ruta a todos los documentos.

  • Y otros comandos que no se que hacen más específicos como:
$GEDIT_CURRENT_DOCUMENT_URI
$GEDIT_CURRENT_DOCUMENT_SCHEME
$GEDIT_DOCUMENTS_URI

Vamos a ver como funciona, primero abrimos Herramientas - Manage External Tools. Verás una serie de herramientas, con su respectivo Shell Script al lado.

Puedes añadir atajos del teclado, decirle si tiene que guardar algún documento cuando se active, si ha de mostrarte alguna notificación, etc. Para crear un nuevo comando, click en la cruz de la parte inferior izquierda.

A la derecha aparecerá un recuadro con el código #!/bin/sh , es allí donde va el código. Por ejemplo, si queremos un comando que compile java, el script es tan simple como:

#!/bin/sh"
echo "Compilando... " $GEDIT_CURRENT_DOCUMENT_NAME
javac $GEDIT_CURRENT_DOCUMENT_PATH

Supongamos que estamos compilando C, la salida por default es a.out; en general no queremos eso, lo ideal es que se llame igual que el archivo original (pero sin extensión). En este caso:

#!/bin/sh
echo "Compilando... " $GEDIT_CURRENT_DOCUMENT_NAME
gcc  "$GEDIT_CURRENT_DOCUMENT_PATH" -o "${GEDIT_CURRENT_DOCUMENT_NAME%.*}"

Lo que hace "${GEDIT_CURRENT_DOCUMENT_NAME%.*}" es quitarle la extensión al nombre del archivo. Podemos intuir entonces que para correr un programa en java, por ejemplo, el código sería:

#!/bin/sh
java ${GEDIT_CURRENT_DOCUMENT_NAME%.*}

Finalmente, les había prometido hablar sobre SyncTex para la última parte del tutorial, pero puede que ésta tarde, así que les dejaré mientras tanto este script para compilar Latex.

Tal vez pienses que es demasiado pasar por dvi - ps - pdf , pero en mi experiencia esto da menos errores que ir directamente de dvi a pdf. Para más ejemplos, te recomiendo veas este thread del foro de Ubuntu.