Ejecutar Sublime Text desde el terminal de Mac OS X
Hace muchos meses que no escribo una entrada en mi blog, así que voy a empezar con pequeñas entradas con trucos o detalles de mi día a día, que me servirán como referencia cuando olvide cómo hacía algo.
Normalmente utilizo Sublime Text como IDE para la mayoría de mis proyectos (aunque últimamente le estoy siendo infiel con IntelliJ para proyectos con Grails). El caso es que a veces quiero editar un fichero con ST cuando me encuentro en la ventana de terminal y lo que hacía era abrir ST desde Alfred o desde Applications y a continuación buscar el fichero a editar navegando dentro de mi estructura de directorios, lo que era un poco pesado.
Navegando para ver cómo hacerlo más sencillo descubrí que ST viene con un CLI llamado subl oculto en la carpeta de Contents de la app de Sublime Text.
Podemos abrir, desde el terminal, el ST ejecutando el siguiente comando:
open /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
Puedes ver las opciones y más información de este comando en este link.
Pero lanzar esta aplicación con toda la ruta desde la línea de comandos es poco eficiente, así que me he ahorrado toda la ruta creado un enlace simbólico llamado sublime:
ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime
Tras crear el enlace podemos abrir una ventana de terminal o ejecutar:
source ~/.bash_profile
o, según el shell que utilicemos,
source ~/.zshrc
y verificar que nos abre los ficheros que queremos pasándoselos como parámetros:
sublime file_to_edit.txt
También podemos abrir una carpeta completa pasando como parámetro la ruta:
sublime .
Hay que comprobar que tenemos en la variable de entorno PATH la ruta que hemos definido en el enlace simbólico /usr/local/bin/
Para ello editamos nuestro fichero de profile, o en mi caso el .zshrc para incluirlo en esta línea:
export PATH=(...):/usr/local/bin
En esa variable están todos los directorios donde se buscarán ejecutables al lanzar un binario desde el terminal.
Nota: Los '(...)' en la línea anterior hace referencia a cualquier otra ruta que ya estuviera escrita en esa variable, separadas por dos puntos (:).
Espero que a alguien esto le sirva como a mi... y a ver si el siguiente post no tarda meses, ni semanas ;)