Abrir texto sublime desde la terminal en macOS

417

En la terminal cuando uso .subl

Vuelve -bash: .subl: command not found

¿Alguien sabe cómo abrir Sublime Text 3 desde la línea de comandos en macOS?

usuario1405049
fuente
3
¿Cómo te ha ido con esto? También estoy teniendo problemas con sublST3. He creado el enlace simbólico en el /usr/local/bin/sublque apunta /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl. Incluso he agregado export PATH=/usr/local/bin:$PATHy export EDITOR="subl -w"en mi ~/.bash_profile, aún no funciona y me sale el mismo error.
rs77
Tengo un problema extraño en el que tengo que abrir la carpeta subl para que se ejecute el comando. Se ejecuta lo siguiente: Angelfirenze$ /Applications/Sublime\ Text\ 3.app/Contents/SharedSupport/bin/subl ; exit; logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. [Process completed] Y Sublime Text 3 finalmente se abre en una nueva sesión. Tengo Homebrew instalado y seguí las instrucciones para eso.
Angelfirenze
44
Si desea abrir el archivo file.txtcon Sublime Text desde la línea de comando, el comando open -a "Sublime Text" file.txtpuede ser más adecuado.
mareoraft
El comando no es .subl, es subl.
The Tin Man

Respuestas:

627

Finalmente conseguí que esto funcionara en mi caja OSX. Usé estos pasos para que funcione:

  1. Prueba sublde su instalación ST:

    Primero, navegue a una pequeña carpeta en la Terminal que desea que ST abra e ingrese el siguiente comando:

    /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl .
    

    NOTA: Es posible que deba reemplazar Sublime\ Text.appen el comando anterior Sublime\ Text\ 3.appo Sublime\ Text\ 2.appdependiendo de dónde se almacena la aplicación en su Applicationsdirectorio. Al .final del comando anterior, se abre el directorio de trabajo actual en el que se encuentra (¡nuevamente asegúrese de estar en un directorio que solo contenga algunos archivos!).

    Si NO obtiene Sublime Text abriendo su directorio de trabajo actual, el siguiente conjunto de pasos NO funcionará. Si no sucede nada o si recibe un error de Terminal, será porque no pudo encontrar la aplicación Sublime Text. ¡Esto significaría que tendría que verificar lo que ha escrito (ortografía, etc.) O que no está instalado Sublime Text!

  2. Marque ".bash_profile":

    Ahora es el momento de crear su enlace simbólico en su PATHcarpeta, PERO, antes de hacerlo, verifiquemos su archivo de perfil con nano ~/.bash_profile. Estas son las siguientes líneas que pertenecen a tener subltrabajo en la línea de comando para Sublime Text:

    export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
    export EDITOR='subl -w'
    

    La primera línea establece la ubicación donde desea que Terminal busque binarios en su máquina, voy a almacenar mi enlace simbólico en el /usr/local/bindirectorio; supongo que podría almacenarlo en cualquier lugar siempre que haya notificado a Terminal dónde buscar binarios.

    La segunda línea es OPCIONAL y solo establece Sublime Text como el editor predeterminado. Se -wha agregado la bandera y puede obtener más información sobre banderas en los documentos de Sublime Text: ST3 subl o ST2 subl

    Si realiza modificaciones en este archivo una vez que lo ha cerrado, debe ejecutar el comando:

    source ~/.bash_profile 
    

    para compilar sus ediciones recién aplicadas. Si ve algún error después de obtener su archivo, corríjalo antes de pasar al paso final.

  3. Crea un enlace simbólico a Sublime Text:

    Ahora en la ruta elegida (que usé /usr/local/bin) ahora ingresa el siguiente comando:

    ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
    

    El /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/sublser exactamente la misma ubicación que lo que ha introducido y verificado como trabajar en el paso 1 anterior. Al /usr/local/bin/sublser la ubicación donde desea que se ubique el enlace simbólico, debe ser una de sus PATHubicaciones del PASO 2 anterior.

    Ahora, cuando navega a una carpeta o archivo que desea abrir en Sublime Text, ahora solo ingresa sublseguido del nombre del archivo o .para abrir el directorio de trabajo actual.

rs77
fuente
3
He tenido un problema con ST3, donde la primera vez que escribió en el subl .que obtendría un editor llamado sublime untitledy no hace referencia a los archivos en el directorio de la que estaba. Si lo hace export EDITOR='subl -w'a mi .bash_profilefijo esto.
Richard Ortega
44
Esto funcionó para mí, pero primero tuve que eliminar el enlace simbólico al antiguo archivo subl.
Giles Butler
3
esto funcionó muy bien hasta el último paso. Estoy recibiendo ln: /usr/subl: Permission deniedpensamientos?
stevenspiel
2
Creo que encontré la respuesta aquí stackoverflow.com/questions/10196449/…
stevenspiel
1
Como encontró @ mr.musicman, es posible que deba usarlo sudodelante del comando en el paso 3.
Sarah Lewis
312

Para MAC 10.8+:

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

trabajó.

Ganatra
fuente
1
Tuve que usar el directorio de inicio, ~, en lugar de / usr / bin, para que esto funcionara para mí ... "sudo ln -s / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl ~ / bin / subl "
Ben Haley
Esto está funcionando, pero no se está abriendo el mismo lugar donde ejecuté Subl
Jitendra Vyas
1
Para sublime2sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl
Montaro
Trabajó en OS X 10.10.4
Kuchi
59
@Tinple Esto funciona en 10.11 sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl Vea la respuesta aquí por qué - apple.stackexchange.com/questions/196224/…
Ross
152

Asumiendo:

  • Ya has instalado Homebrew.
  • / usr / local / bin está en su $ PATH.
  • Estás en Yosemite o El Capitain.

MacOS Sierra 10.12.5 funciona tan bien confirmado por David Rawson y MacOS Sierra 10.12.6 confirmado por Alexander K.

Ejecute el siguiente script en Terminal para crear el enlace simbólico específico.

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

Entonces:

subl .

Presiona Returny debería abrir instantáneamente Sublime Text.

Chutipong Roobklom
fuente
3
@ChutipongRoobklom Gracias. A mí me funcionó macOS Sierra Version: 10.12 (16A323).
Subhajit
Trabajando en macOS Sierra 10.12.5. Gracias
David Rawson
3
Puede confirmar que también funciona en macOS Sierra 10.12.6. ¡Gracias!
Alexander K.
mi ruta de texto sublime era diferente, supongo que porque estoy usando sublime 2 ln -s / Applications / Sublime \ Text \ 2.app/Contents/SharedSupport/bin/subl / usr / local / bin / subl
talsibony
1
Funciona en High Sierra OSX 10.13.3
chichilatte
66

Esto funcionó para mí (estoy usando OS X Mavericks)

Primero, crea un enlace simbólico:

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin/subl

Ahora puedes abrir sublime con

subl "/a/path/to/the/directory/you/want/to/open"
Roger Sobrado
fuente
1
Tuve que sudo rm / usr / bin / subl para que funcione en OSX 10.9, ¡gracias!
dnlcrl
1
ln -s / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl / usr / local / bin / subl
organillero
¿Por qué necesitamos citas? funciona con citas para mí, pero no funciona sin ellas?
vgrinko
11
En: / usr / bin / subl: Operación no permitida
Ken Ratanachai S.
16
@KenRatanachaiS. Uso /usr/local/bin/subl, en lugar de /usr/bin/subl.
Josh Foskett
65

Estoy usando oh-my-zsh en Mac OSX Mavericks y el enlace del símbolo no funcionó para mí, así que agregué un alias en mi archivo .zshrc:

alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"

Abra una nueva terminal y debería estar listo, y escriba subl.

Thomas Bindzus
fuente
Lo mismo aquí, pero para Bash.
merqlove
2
Lo mismo aquí, esto funcionó para mí, pero necesitaba cambiarlo a Sublime text 2 con esta cadena: "Sublime \ Text \ 2.app/"
Joshua Soileau
Esto es para ST 2, supongo. ST 3 viene con CLI pero aún no puedo ejecutarlo.
atilkan
@emrah Estoy usando ST3
Thomas Bindzus
@ThomasBindzus descubrí más tarde. Gracias.
atilkan
43

El que usaré es muy simple.

open -a "sublime text" [file]

Esto abre el texto sublime de inmediato. Puede especificar que el archivo se abra como un parámetro opcional, por ejemplo, para abrir "myfile.txt" en el directorio actual.

Fuad
fuente
3
Si tiene acceso más rápido, puede crear un alias. Escriba nano .bash_profile y péguelo en: alias subl = "open -a 'sublime text'"
mbokil
1
¡Gracias! Es la única solución que funcionó para mí. Para que se abra en una nueva pestaña en la ventana existente (no en una nueva), consulte stackoverflow.com/questions/9961350/…
Dennis Golomazov
Creo que esta es la opción más limpia de todas. ¡Gracias!
grooveplex
¿Cómo se modifica esto para crear un archivo que en realidad no existe? Sé cómo usar open -a sublimetext para abrir un archivo que existe, pero si estoy creando un nuevo archivo de texto, ¿a qué debo modificar el script abierto?
esaruoho
28

Hay una manera fácil de hacer esto. Solo toma un par de pasos y no necesita usar la línea de comando demasiado. Si es nuevo en la línea de comandos, esta es la forma de hacerlo.

Paso 1: encontrar el archivo bin para colocar el archivo ejecutable subl

  1. Abre la terminal
  2. escriba cd ..--------------------- esto debería volver a un directorio
  3. escribir ls ------------------------ para ver una lista de archivos en el directorio
  4. escriba cd ..--------------------- hasta que obtenga una carpeta que contenga usr
  5. escribir open usr --------------- esto debería abrir el buscador y debería ver algunas carpetas
  6. abra la carpeta bin ------- aquí es donde copiará su archivo ejecutable sublime.

Paso 2: encontrar el archivo ejecutable

  1. abre el buscador
  2. Debajo del archivo, abra una nueva ventana del buscador (CMD + N)
  3. Navega a las aplicaciones carpeta de
  4. encuentre Sublime Text y haga clic derecho para obtener un menú desplegable
  5. Haga clic en Mostrar contenido del paquete
  6. Abrir contenido / SharedSupport / bin
  7. Copia el archivo subl
  8. Péguelo en la carpeta bin en la carpeta usr que encontramos anteriormente
  9. En la terminal escriba subl-------------- esto debería abrir Sublime Text

Asegúrese de que se copie y no sea un acceso directo. Si tiene un problema, vea la carpeta usr / bin como iconos y pegue el subl en un área vacía de la carpeta. No debe tener una flecha de acceso directo en la imagen del icono.

bjtran1234
fuente
Después de probar las otras respuestas, esta fue la única que funcionó para mí. Mac OS X Yosemite 10.10.1.
tmthyjames
Esto no funcionó para mí en Mac OS X El Capitan: no pude copiar para archivar. Sin embargo, la respuesta de Chutipong Roobklom funcionó.
CodeBiker
A partir de El Capitan's y versiones posteriores, debe pegar el archivo subl en la carpeta / usr / local / bin. Siga el paso 2 hasta el punto 6, ábralo en la terminal y ejecute el comando sudo cp subl / usr / local / bin. Esto se debe a la nueva función de Protección de integridad del sistema.
PeeJee
18

Prueba esto.

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
Takao Shibamoto
fuente
^ Use este. Enlaces suaves en / usr / * local * / bin.
Guice
16

El comando Symlink de la documentación de Sublime Text 3 no funcionará ya que no hay~/bin/ directorio en la ubicación de Inicio en Mac OS X El Capitan o posterior.

Por lo tanto, tendremos que colocar el enlace simbólico /usr/local/binya que esta ruta estaría en nuestra $PATHvariable en la mayoría de los casos .

Entonces, el siguiente comando debería hacer el truco:

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

Una vez que haya creado el enlace simbólico correctamente, podrá ejecutar el Sublime Text 3 de esta manera: subl . (. Significa el directorio actual)

Md Mazedul Islam Khan
fuente
12

Puedes crear un nuevo alias en Terminal:

nano ~/.bash_profile

Copia esta línea y pégala en el editor:

alias subl='open -a "Sublime Text"'

Hit control+ x, entonces y, luegoenter para guardarlo y cerrarlo.

Cierre todas las ventanas de Terminal y ábralo nuevamente.

Eso es todo, ahora puedes usar subl filenameosubl .

Pegatinas
fuente
11

Tenga en cuenta no escribir en, /usr/binsino en /usr/local/bin. El primero es para aplicaciones que escriben el binario en el sistema y el último es para ese uso específico de hacer nuestros propios binarios en todo el sistema (que es nuestro caso aquí cuando hacemos simbología).

También /usr/local/binse lee después /usr/biny, por lo tanto, también es un buen lugar para anular cualquier aplicación predeterminada.

Considerando esto, el enlace simbólico correcto sería:

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

vinil
fuente
10

En OS X Mavericks ejecutando Sublime Text 2, lo siguiente funcionó para mí.

sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl

Es útil ubicar el archivo en el buscador y arrastrarlo y soltarlo en la ventana de terminal para que pueda estar seguro de que la ruta es la correcta, no soy un gran usuario de terminal, así que fue más cómodo para mí. luego puede ir al inicio de la ruta y comenzar a agregar otras partes como los comandos abreviados de UNIX. Espero que esto ayude

Jonathan Beech
fuente
9

Funciona !!!! para mí en MacOS Sierra 10.12.2

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

y encontrarlo en la terminal subl

tarikul05
fuente
9

Cerrar Sublime Ejecute este comando. Lo desinstalará. No perderás tus preferencias. Luego ejecútalo de nuevo. Se unirá automáticamente subl.

brew install Caskroom/cask/sublime-text
Govind Rai
fuente
2
Esto finalmente lo hizo, ¡muchas gracias por publicar esto! He estado tratando de hacer que ST3 se ejecute desde la línea de comandos durante meses después de que se rompió el enlace simbólico original por alguna razón. ¡Gracias de todas formas!
Angelfirenze
Gracias, esto funcionó, pero solo ejecutarlo dos veces no fue suficiente, sudo rm -rfprimero tuve que eliminar el sublime existente en el directorio sublime en la carpeta de aplicaciones.
cardamomo
7

Agregar esto a su .bashrc o .zshrc es una solución simple.

alias sublime="open -a /Applications/Sublime\ Text.app"
Won Jun Bae
fuente
6

No debe contaminar el directorio / usr / bin a menos que realmente lo necesite. Siempre uso / usr / local / bin para esos binarios que no son administrados por el administrador de paquetes de distribución. ¿Por qué? Porque si el administrador de paquetes se actualiza, siempre reemplazará los archivos en / usr / bin.

Entonces, lo que haría es

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

tonirilix
fuente
5

Si ha configurado subl para que se le llame desde la línea de comandos, el comando adecuado para abrir el directorio actual es:

subl .

" OS X Command Line " es un enlace sobre cómo asegurarse de que todo esté configurado.

danmanstx
fuente
Vuelveln: /Users/###/bin/subl: No such file or directory
user1405049
¿miraste el enlace al final de mi respuesta? intenta seguir el comandoln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" ~/bin/subl
danmanstx
@danmanstx He creado el enlace simbólico en mi /usr/local/bindirectorio pero todavía me da el error. Observo que mi paquete ST3 se ha instalado en /Applications/Sublime Text.app/...y he hecho la distinción al crear mi enlace simbólico. Sin embargo, el error persiste: creo que tiene algo que ver con mi .bash_profilearchivo.
rs77
En mi caso, el enlace apunta aln -s /Volumes/Macintosh\ HD/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
NicolásKittsteiner
5

Solo puedes agregar un alias

alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'

Entonces deberías poder abrir una carpeta o lo que sea con

subl <path>
zakfisher
fuente
3

Para cualquiera que esté buscando abrir un archivo con Sublime en Mac desde la terminal

open 'path/file.txt' -a '/Applications/Sublime Text.app'
zeeawan
fuente
3

¡Esto es para que funcione como un ALIAS, no un enlace simbólico!

Esto le permitirá ejecutar comandos adicionales en el terminal sin interrumpir la sesión subl. Usando muchas de las respuestas del enlace simbólico aquí ( ln -s), hace que el proceso terminal perdure mientras se usa el texto Sublime. Si desea la separación, cree un alias en el perfil de Bash así:

  1. Prueba sublde su instalación ST:

    Primero, navegue a una carpeta en la Terminal que desea que ST abra e ingrese el siguiente comando:

    /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl .
    

    NOTA: Es posible que deba reemplazar Sublime\ Text.appen el comando anterior Sublime\ Text\ 3.appo Sublime\ Text\ 2.appdependiendo de dónde se almacena la aplicación en su Applicationsdirectorio. Al .final del comando anterior, se abre el directorio de trabajo actual en el que se encuentra (¡nuevamente asegúrese de estar en un directorio que solo contenga algunos archivos!).

    Si NO obtiene Sublime Text abriendo su directorio de trabajo actual, el siguiente conjunto de pasos NO funcionará. Si no sucede nada o si recibe un error de Terminal, será porque no pudo encontrar la aplicación Sublime Text. ¡Esto significaría que tendría que verificar lo que ha escrito (ortografía, etc.) O que no está instalado Sublime Text!

  2. Verifique y actualice ".bash_profile":

    Ahora agregue el alias en su perfil de Bash. Ábrelo a través de vim ~/.bash_profile. Estas son las siguientes líneas que pertenecen a tener subltrabajo en la línea de comando para Sublime Text:

    ## For Sublime Text 3 alias
    alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
    ## For Sublime Text global editor preference **Optional
    export EDITOR='subl -w'
    

    Sugiero que siempre comentes tu código aquí con ##. La segunda línea es OPCIONAL y solo establece Sublime Text como el editor predeterminado. La bandera -wse ha agregado y puede obtener más información sobre banderas en los documentos de Sublime Text: ST3 subl o ST2 subl

    Si realiza alguna edición en este archivo una vez que lo ha cerrado, necesita hacer sourceeste archivo en su sesión actual o cerrar el terminal (pestaña) y abrir uno nuevo. Puede sourceejecutar este archivo ejecutando el comando source ~/.bash_profileResolver cualquier error antes de pasar al paso final.

Chris Frisina
fuente
2

Agregaría que si está actualizando desde Sublime Text 2, vaya a / usr / bin y elimine primero su antiguo subl antes de seguir las mismas instrucciones anteriores. Vale la pena la actualización.

Vincent
fuente
2

Lo logro con solo una línea en la terminal (con Sublime 3):

alias subl='/usr/local/bin/sublime'
Damjan Pavlica
fuente
2

Estoy usando mac airbook, abra su terminal y escriba

 sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin/subl

Luego escriba subl simple y nombre de archivo

 subl index.py
Siddharth Shukla
fuente
Vea a continuación, use el que tenga / usr / * local * / bin. Intente no agregar enlaces personalizados en los directorios del sistema.
Guice
0

Estoy usando Oh-My-Zshell y los alias anteriores indicados no funcionaron para mí, así que escribí una función bash simple que te permitirá abrir Sublime desde la línea de comandos usando sublimepara abrir la carpeta actual en el editor. Con la funcionalidad adicional para especificar un archivo para abrir el editor.

# Open Sublime from current folder or specified folder
sublime(){
  /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ./$1
}

Uso para abrir la carpeta actual en la terminal:

$ sublime

Uso para abrir una carpeta específica:

$ sublime path/to/the/file/to/open
Andrew Steinmetz
fuente
0

Resumiendo las diferentes formas en que puede lograrlo:

  1. Para abrir texto sublime desde la terminal
open /Applications/Sublime\ Text.app/
  1. Para abrir un archivo específico en la ruta actual (o proporcionar la ruta al archivo que necesita abrir) usando texto sublime
open -a /Applications/Sublime\ Text.app/ myFileToOpen.txt
  1. Haga su comando breve introduciendo un nuevo alias llamado 'sublime' y úselo

    a. abrir bash_profile:

    nano ~/.bash_profile

    si. copia esta línea para crear el alias y guarda y reinicia el terminal

    alias sublime="open -a /Applications/Sublime\ Text.app"

    C. uso: apple.txt se abrirá con texto sublime (proporcione la ruta del archivo si es necesario)

    sublime apple.txt

usuario0904
fuente
-1

Estoy en una Mac y esto funcionó para mí:

open /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
usuario9199553
fuente