No puedo abrir un archivo en texto sublime usando bash_rc

Mi función bash_profile se ve así:

function st() { /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /Users/ishan/workspace/nltk_engine/index.py;}

Sin embargo, cuando hago st en la terminal, simplemente abre una ventana de texto sublime sin abrir el archivo. Copié la línea en la terminal y está funcionando. No funciona a través de bash_profile.

¿Qué versión de Sublime Text usas? Probé con la versión 2.0.2 y funcionó como se esperaba: podía abrir un archivo python usando una función como la tuya procedente de .bash_profile. ¿ Cuál es la salida de type st? Como comentario adicional, agregue funciones en .bashrcsu lugar, ya que las funciones no se exportan al entorno.

Respuestas (2)

La stfunción que está funcionando cuando escribe stes una antigua que definió de forma interactiva dentro de Terminal. Si ingresas:

type st

verá que esta definición no es la que ingresó dentro de su archivo .bash_profile.

Para ejecutar la definición ingresada dentro de su .bash_profile, debe cargarla dentro de su shell real:

. ~/.bash_profile

o

source ~/.bash_profile

Y podrás comprobar que a partir de ahora tu definición de tu stfunción es correcta con:

type st
Finalmente conseguí que funcionara. El error fue que también había un alias "st" en mi .bashrc. Esto estaba creando el problema. Lo encontré emitiendo el comando "tipo". Gracias :). Además, ¿podría decirme qué cosas debo poner en mi bash_profile y qué cosas debo poner en bashrc?
Los comentarios de @ishanJain deben usarse para solicitar aclaraciones sobre la respuesta dada y cosas similares. Hacer preguntas de seguimiento en los comentarios no funciona tan bien, es mejor hacer una nueva pregunta en estos casos. En su caso, también podría ser útil buscar preguntas antiguas aquí, en stackoverflow.com y en unix.stackexchange.com porque es muy probable que este tema haya surgido antes.
→ Ishan: buena pregunta, pero sigue el comentario de Patrix. Ayudarás a todos... ya ti mismo: respuesta mejor dirigida.

Dado que su comando es un comando estático, puede probar un alias:

alias st="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /Users/ishan/workspace/nltk_engine/index.py"
Esto no será estático. Solo estaba probando usando un ejemplo estático.