Sublime 3 + Stata 12: Cómo integrar Syntax y Build

Hola a todos, volvemos a lo que nos interesa: cosas de nerds, jeje.

Imagino que conocerán Sublime Text, si no, corran a instalarlo, porque sin dudas es uno de los mejores productos de software hechos en el último tiempo. Y en Ubuntu 13.10 va perfecto. :)

Captura de pantalla de 2013-09-30 18:49:46

Este súper editor de texto ofrece muchísimas alternativas y opciones al programador hardcore, pero también al novato que está aprendiendo a tocar código. En mi caso, yo programo mis cosas económicas en Stata, pero si alguna vez usaron este programejo, seguramente sabrán que el editor de “.do files” que viene dentro del programa es una verdadera garcha ^_^. Después de la primera probadita que le di a Sublible-text 3, lo primero que pensé fue en tratar de integrarlo con uno de los programas que más uso: Stata.

En plan de integrar Stata con Sublime Text 3, armé un repo en git, específico para solucionar este asunto, cosa que todos puedan implementar el truquito que armé (si si, no había NADA en la web que solucionara esto… así que me arremangué y junté los puntos con los hilos… y al final, con un poquito de suerte, anduvo!). Luego de un tiempito (y un fresh install en mi compu) pulí el proceso de instalación del script de forma que la integración pueda hacerse en Ninja Mode, con un comando.

Requerimientos:

Qué es lo que hace el complemento?

  • Remarca con colorsitos la sintaxis de Stata 11 y 12 en Sublime text
  • Permite la ejecución o compilación de archivos .do (mediante ctrl+B) desde Sublime
  • Permite instancias independientes de Stata por cada compilación (^_^)
  • Funciona con la versión gtk o con la versión terminal de Stata. :)

Ahora, a los postres. Integrando Stata y Sublime 3 con un comando:

Ninja-Install: un copy-paste.

cd ~ && wget https://copy.com/8d24ms0Ng2Us/Stata.zip?download=1 -O Stata12-Sublime3-Linux.zip && mkdir -p ~/.config/sublime-text-3/Packages && cp -a Stata12-Sublime3-Linux.zip ~/.config/sublime-text-3/Packages && cd ~/.config/sublime-text-3/Packages && unzip Stata12-Sublime3-Linux.zip && rm Stata12-Sublime3-Linux.zip

Captura de pantalla de 2013-09-30 18:54:21Reiniciamos Sublime y seleccionamos la sintaxis Stata. Automáticamente la opción de Build estará disponible mediante el atajo de tecla Ctrl+B.

Captura de pantalla de 2013-09-30 19:01:35Como ven, permite seleccionar la sintaxis de Stata (atrás se ve que la colorización del texto funciona). Obviamente va con el tema de colores que más les guste. :)

Nota:

La opción de compilar no debería andar “al instante”, devolviendo un “Error type 2”. Para que la opción de compilar funcione bien, hay que tirar unos enlaces simbólicos de forma de que Stata se pueda ejecutar como un comando bash de sistema. Esto en “mi versión mía” :P esto es automático porque siempre instalo Stata en el mismo lugar, pero en el caso de usted, estimado señor o señora lectora, dependerá de donde haya puesto sus archivitos ejecutables durante el proceso de instalación de stata.

En suma, si siguen el tutorial que hice anteriormente de cómo instalar Stata en Ubuntu, ejecuten este comando:

sudo ln -s /usr/local/stata12/xstata-se /usr/bin/xstata-se && sudo ln -s /usr/local/stata12/stata-se /usr/bin/stata-se && sudo ln -s /usr/local/stata12/xstata /usr/bin/xstata && sudo ln -s /usr/local/stata12/stata /usr/bin/stata

En el ejemplo de arriba Stata está instalado en /usr/local/stata12. Si lo instalaron en otro lugar, entonces cambien esos cachos de código y listo. :)

Qué es lo que NO hace el script?

  • Lamentablemente todavía no puedo hacer que se ejecuten PORCIONES del código (o sea sólo ejecutar una  selección de nuestra .do file, algo realmente usual en el programa por defecto). Las soluciones ultra temporales que uso son dos: la primera es meter un liso y llano STOP o PARÁ en donde quiero que la secuencia corte, de forma que me tira un error de sintaxis y puedo testear porciones de programa. La segunda es copiar la porción en un nuevo archivo, correrlo, y después agregarlo a mi archivo de verdad. Ambas implican unos pasitos más que “seleccionar y correr”, pero es lo que hay.
  • Otra limitación de esto es que (no se por qué) no se pueden ejecutar direcciones de archivos con caracteres especiales. Así que en la dirección del archivo .do NADA DE ESPACIOS ni de cosas raras, como PARÉNTESIS u otros símbolos. Ejemplo de cómo hacerlo bien: “~/preyectos/stata/prueba.do” funciona perfecto, mientras que si no tenemos cuidado y usamos espacios y cosas locas, por ejemplo con “~/preyectos/stata/prueba (sub prueba número 343).do”, la compilación no funciona.

Bueno, y eso fue todo por hoy. :)

Salú!

Sublime 3 + Stata 12: Cómo integrar Syntax y Build

9 thoughts on “Sublime 3 + Stata 12: Cómo integrar Syntax y Build

    1. Hola Joel! Gracias por pasar. :)
      El ícono del clima no tiene una alternativa en elementary OS, lamentablemente. Lo “más mejorcito” que podés conseguir es weather-indicator (pegale una googleada) pero es un programa que está pensado para unity y para distribuciones más nuevas, por lo que en 12.04 anda y deja de andar a piacere.
      Lo que ves en el screenshot es gnome-shell con la extension “weather” [fijate que el panel tiene degrade, con eso te das cuenta que el environment no es elementary os] ^_^
      Salú!

  1. jobgt says:

    Hola, hace tiempo que busco otro editor de Stata para Linux pero hasta hoy me tope con tu blog. Como ya tenia instalado Stata, solo instale Sublime, version 2, pero no me funciona el Crtl+B para compilar. ¿Alguna sugerencia?

    1. jobgt says:

      Olvide decirte que muchas gracias por tu aporte, realmente me es muy útil porque extrañaba un buen editor en linux para Stata. Ya logre que funcione, pero en tu post dices “Permite instancias independientes de Stata por cada compilación (^_^)” pero yo necesito exactamente lo opuesto (por el momento :)) así que mi pregunta es como desactivar esto.

      1. respondí antes de mirar todos los comentarios. Si, efectivamente lo que falta es la compilación selectiva, que no es tan fácil como parece. Técnicamente no hay mucha diferencia la verdad entre correr una parte o todo el código, yo trabajo perfecto con el método de correr todo el .do file, incluso con bases de más de 4000 variables… el método de correr todo el do te fuerza a tener un código muy secuencial y ordenado. :)
        Es cierto que para probar cosas puntuales a veces puede ser raro. El “work-around” que uso es simplemente copiar y pegar. No hay mucha diferencia en teclear ctrl+c, alt-tab, ctrl+v que shift+ctrl+b,alt-tab (que sería la compilación selectiva y luego pasar a la ventana).
        Desde la perspectiva de la extensión de sublime la diferencia puede parecer una zonzada, pero no lo es. Hay que armar un buffer temporal de la selección activa de texto, meterlo en un archivo temporal y luego decirle a stata que ejecute ese archivo. El primer pasaje es el punto complejo, pero con un poco de amor y tiempo se podría hacer. Hasta ahora sinceramente no me puse porque con copiar y pegar trabajo cómodo… no es lo idealísimo, pero se puede.
        Un abrazo!

    2. Hola jobt, te recomiendo pasarte por mi perfil de github en el que hice un compilador simple de sublime para stata. Es muy básico y sólo funciona para correr todo el .do file.
      Sin embargo, espero poder actualizarlo porque ahora tengo una idea de cómo realizar el buffer de selección, que es el detalle que faltaría.
      Si tenés algún problema con la instalación no dudes en preguntar de nuevo.
      https://github.com/rhoconlinux/Stata-12-in-Sublime-3-under-Ubuntu

      1. jobgt says:

        Hola rhoconlinux, gracias por tu respuesta, por ahora la solución no ideal, pero me permite tener una sola instancia de stata es modificar el profile.do agregando la linea similar a esta: global F2 “do path\archivodo;”. La desventaja es que tengo que actualizar cada vez que corro un archivodo diferente, pero para mi esta bien para un parche temporal :)

  2. jobgt says:

    Hola, lamento la tardanza, ya no habia pasado por aca, el archivo do queda así:

    *definiendo archivo a ejecutar con F2
    global F2 “do path/mydofile;”

    Entonces al presionar la tecla F2 se va a ejecutar mydofile, este lo estoy editando desde sublime y simplemente lo debes grabar antes de correr, aúnque esto es evidente, ¿no?

    Saludos

Y tu? qué estás mirando? :)

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s