Apri Sublime Text da Terminal in macOS


417

Nel terminale quando uso .subl

Ritorna -bash: .subl: command not found

Qualcuno sa come aprire Sublime Text 3 dalla riga di comando in macOS?


3
Come sei andato con questo? Sto riscontrando problemi anche con sublST3. Ho creato il collegamento simbolico in /usr/local/bin/sublcui punta a /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl. Ho anche aggiunto export PATH=/usr/local/bin:$PATHe export EDITOR="subl -w"nel mio ~/.bash_profile- ancora non funziona e ottengo lo stesso errore.
rs77,

Sto riscontrando uno strano problema in cui devo effettivamente aprire la cartella subl per ottenere il comando da eseguire. Viene eseguito quanto segue: 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] E Sublime Text 3 si apre finalmente in una nuova sessione. Ho Homebrew installato e ho seguito le istruzioni per questo.
Angelfirenze,

4
Se si desidera aprire il file file.txtcon Sublime Text dalla riga di comando, il comando open -a "Sublime Text" file.txtpotrebbe essere più adatto.
mareoraft,

Il comando non lo è .subl, lo è subl.
Tin Man,

Risposte:


627

Finalmente sono riuscito a farlo funzionare sulla mia scatola OSX. Ho usato questi passaggi per farlo funzionare:

  1. Test subldalla tua installazione ST:

    Per prima cosa, vai in una piccola cartella nel Terminale che desideri aprire ST e inserisci il seguente comando:

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

    NOTA: potrebbe essere necessario sostituire Sublime\ Text.appil comando sopra Sublime\ Text\ 3.appo in Sublime\ Text\ 2.appbase alla posizione in cui l'applicazione è memorizzata nella Applicationsdirectory. Alla .fine del comando sopra si apre la directory di lavoro corrente in cui ci si trova (di nuovo assicurarsi di essere in una directory che contiene solo pochi file!).

    Se NON si ottiene Sublime Text che apre la directory di lavoro corrente, la serie di passaggi successiva NON funzionerà. Se non succede nulla o ricevi un errore dal Terminale, sarà perché non è stato possibile trovare l'applicazione Sublime Text. Ciò significherebbe che dovresti controllare ciò che hai digitato (ortografia, ecc.) O che Sublime Text non è installato!

  2. Seleziona ".bash_profile":

    Ora è il momento di creare il tuo link simbolico nella tua PATHcartella, MA, prima di farlo, controlliamo il tuo file di profilo usando nano ~/.bash_profile. Queste sono le seguenti righe che riguardano il subllavoro sulla riga di comando per Sublime Text:

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

    La prima riga imposta la posizione in cui vuoi che Terminal cerchi i binari sulla tua macchina, ho intenzione di memorizzare il mio link simbolico nella /usr/local/bindirectory - immagino che tu possa memorizzarlo ovunque purché tu abbia notificato a Terminal dove cercare i binari.

    La seconda riga è FACOLTATIVA e imposta Sublime Text come editor predefinito. Il flag -wè stato aggiunto e puoi scoprire di più sui flag andando ai documenti di testo Sublime: ST3 subl o ST2 subl

    Se si apportano modifiche a questo file dopo averlo chiuso, è necessario eseguire il comando:

    source ~/.bash_profile 
    

    per compilare le modifiche appena applicate. Se vedi degli errori dopo aver acquisito il tuo file, risolvili prima di passare al passaggio finale.

  3. Crea un collegamento simbolico al testo sublime:

    Ora nel percorso scelto (che ho usato /usr/local/bin) ora inserisci il seguente comando:

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

    L' /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/sublessere ESATTAMENTE nella stessa posizione di quello che hai inserito e verificato come funzionante nel PASSAGGIO 1 sopra. L' /usr/local/bin/sublessere la posizione in cui si desidera posizionare il collegamento simbolico - deve essere una delle PATHposizioni dal PASSAGGIO 2 sopra.

    Ora quando navighi verso una cartella o un file che vuoi aprire in Sublime Text, ora inserisci semplicemente sublseguito dal nome del file o .per aprire la directory di lavoro corrente.


3
Ho avuto un problema con la ST3 in cui quando ho digitato subl .vorrei ottenere un editor di sublime chiamato untitlede non ha riferimento a qualsiasi file nella directory in cui ero. Fare export EDITOR='subl -w'al mio .bash_profilerisolto questo.
Richard Ortega,

4
Questo ha funzionato per me, ma prima ho dovuto rimuovere il link simbolico al vecchio file subl.
Giles Butler,

3
questo ha funzionato magnificamente fino all'ultimo passo. Ricevo ln: /usr/subl: Permission deniedpensieri?
Stevenspiel,

2
Credo di aver trovato la risposta qui stackoverflow.com/questions/10196449/...
stevenspiel

1
Come ha scoperto @ mr.musicman, potrebbe essere necessario utilizzare sudodi fronte al comando nel passaggio 3.
Sarah Lewis,

312

Per MAC 10.8+:

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

lavorato.


1
Ho dovuto usare la directory home, ~, invece di / usr / bin, per farlo funzionare per me ... "sudo ln -s / Applicazioni / Sublime \ Text.app/Contents/SharedSupport/bin/subl ~ / bin / subl "
Ben Haley,

Funziona ma non sta aprendo la stessa piega dove ho corso Subl
Jitendra Vyas il

1
Per sublime2sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl
Montaro,

Ha funzionato su OS X 10.10.4
Kuchi il

59
@Tinple Funziona in 10.11 sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl Vedi la risposta qui per il perché - apple.stackexchange.com/questions/196224/…
Ross

152

assumendo:

  • Hai già installato Homebrew.
  • / usr / local / bin è nel tuo $ PATH.
  • Sei su Yosemite o El Capitain.

MacOS Sierra 10.12.5 funziona anche confermato da David Rawson e MacOS Sierra 10.12.6 confermato da Alexander K.

Eseguire il seguente script in Terminale per creare il collegamento simbolico specifico.

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

Poi:

subl .

Hit Returne dovrebbe aprire immediatamente Sublime Text.


3
@ChutipongRoobklom Grazie. Ha funzionato per me macOS Sierra Version: 10.12 (16A323).
Subhajit,

Lavorando su macOS Sierra 10.12.5. Grazie
David Rawson,

3
Può confermare che funziona anche su macOS Sierra 10.12.6. Grazie!
Alexander K.

il mio percorso di testo sublime era diverso, immagino perché sto usando sublime 2 ln -s / Applications / Sublime \ Text \ 2.app/Contents/SharedSupport/bin/subl / usr / local / bin / subl
talsibony

1
Funziona su High Sierra OSX 10.13.3
chichilatte il

66

Questo ha funzionato per me (sto usando OS X Mavericks)

Innanzitutto, crea un link simbolico:

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

Ora puoi aprire sublime con

subl "/a/path/to/the/directory/you/want/to/open"

1
Ho dovuto sudo rm / usr / bin / subl per farlo funzionare su OSX 10.9, grazie!
dnlcrl,

1
ln -s / Applicazioni / Sublime \ Text.app/Contents/SharedSupport/bin/subl / usr / / bin locale / subl
organillero

perché abbiamo bisogno di preventivi? funziona con le virgolette per me, ma non funziona senza di loro?
vgrinko,

11
ln: / usr / bin / subl: operazione non consentita
Ken Ratanachai S.

16
@KenRatanachaiS. Usa /usr/local/bin/subl, invece di /usr/bin/subl.
Josh Foskett,

65

Sto usando oh-my-zsh su Mac OSX Mavericks e il link del simbolo non ha funzionato per me, quindi ho aggiunto un alias nel mio file .zshrc:

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

Apri un nuovo terminale e dovresti essere a posto, e digita subl.


Lo stesso qui, ma per Bash.
Merqlove,

2
Lo stesso qui, ha funzionato per me, ma avevo bisogno di cambiarlo in Sublime testo 2 con questa stringa: "Sublime \ Text \ 2.app/"
Joshua Soileau

Questo è per ST 2 credo. ST 3 viene fornito con CLI ma non riesco ancora a eseguirlo.
Atilkan,

@emrah Sto usando ST3
Thomas Bindzus il

@ThomasBindzus L'ho capito dopo. Grazie.
Atilkan,

43

Quello che userò è molto semplice.

open -a "sublime text" [file]

questo apre subito il testo sublime. È possibile specificare il file da aprire come parametro facoltativo, ad es. Per aprire "myfile.txt" nella directory corrente.


3
Se accedi più velocemente puoi creare un alias. Digita nano .bash_profile e incolla: alias subl = "open -a 'sublime text'"
mbokil

1
Grazie! È l'unica soluzione che ha funzionato per me. Per renderlo aperto in una nuova scheda nella finestra esistente (non in uno nuovo), vedi stackoverflow.com/questions/9961350/...
Dennis Golomazov

Penso che questa sia l'opzione più pulita di tutte. Grazie!
grooveplex,

Come si modifica questo in modo che crei un file che non esiste realmente? So usare open -a sublimetext per aprire un file esistente, ma se sto creando un nuovo file di testo, a cosa dovrei modificare lo script aperto?
esaruoho,

28

C'è un modo semplice per farlo. Bastano solo un paio di passaggi e non è necessario utilizzare troppo la riga di comando. Se sei nuovo alla riga di comando, questo è il modo di farlo.

Passaggio 1: trovare il file bin in cui inserire il file eseguibile subl

  1. Apri il terminale
  2. digitare cd ..--------------------- questo dovrebbe tornare a una directory
  3. digitare ls------------------------ per visualizzare un elenco di file nella directory
  4. digitare cd ..--------------------- finché non si ottiene una cartella che contiene usr
  5. digitare open usr--------------- questo dovrebbe aprire il finder e dovresti vedere alcune cartelle
  6. apri la cartella bin ------- qui è dove copi il tuo sublime file eseguibile.

Passaggio 2: ricerca del file eseguibile

  1. apri il cercatore
  2. Sotto il file apri una nuova finestra del finder (CMD + N)
  3. Passare alla cartella delle applicazioni
  4. trova Sublime Text e fai clic con il pulsante destro del mouse per visualizzare un menu a discesa
  5. Fai clic su Mostra contenuto pacchetto
  6. Apri Content / SharedSupport / bin
  7. Copia il file subl
  8. Incollalo nella cartella bin nella cartella usr che abbiamo trovato in precedenza
  9. Nel terminale digitare subl-------------- questo dovrebbe aprire Sublime Text

Assicurati che venga copiato e non sia un collegamento. In caso di problemi, visualizzare la cartella usr / bin come icone e incollare il subl in un'area vuota della cartella. Non dovrebbe avere una freccia di scelta rapida nell'immagine dell'icona.


Dopo aver provato le altre risposte, questa è stata l'unica a lavorare per me. Mac OS X Yosemite 10.10.1.
tmthyjames,

Questo non ha funzionato per me su Mac OS X El Capitan - non sono stato in grado di copiare su file. La risposta di Chutipong Roobklom ha funzionato, tuttavia.
CodeBiker,

A partire da El Capitan e versioni successive, è necessario incollare il file subl nella cartella / usr / local / bin. Quindi segui il passaggio 2 fino al punto 6, aprilo nel terminale ed esegui il comando sudo cp subl / usr / local / bin. Ciò è dovuto alla nuova funzionalità di protezione dell'integrità del sistema.
PeeJee,

18

Prova questo.

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

^ Usa questo. Collegamenti diretti in / usr / * local * / bin.
guice

16

Il comando Symlink dalla documentazione di Sublime Text 3 non funzionerà in quanto non esiste alcuna ~/bin/directory nella posizione Home su Mac OS X El Capitan o versioni successive.

Quindi, dovremo posizionare il collegamento simbolico sul /usr/local/bincome questo percorso sarebbe nella nostra $PATHvariabile nella maggior parte dei casi .

Quindi, il seguente comando dovrebbe fare il trucco:

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

Una volta creato correttamente il collegamento simbolico, sarà possibile eseguire Sublime Text 3 in questo modo: subl . (. Indica la directory corrente)


12

Puoi creare un nuovo alias nel Terminale:

nano ~/.bash_profile

Copia questa riga e incollala nell'editor:

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

Premi control+ x, quindi y, quindi enterper salvarlo e chiuderlo.

Chiudi tutte le finestre del Terminale e riaprilo.

Questo è tutto, ora puoi usare subl filenameosubl .


11

Si prega di notare di non scrivere in /usr/binma invece in /usr/local/bin. Il primo è per l'app che si scrive il binario nel sistema e l'ultimo è per quell'uso specifico di creare i nostri binari a livello di sistema (che è il nostro caso qui durante il collegamento simbolico).

Inoltre /usr/local/binviene letto dopo /usr/bine quindi anche un buon posto per sovrascrivere qualsiasi app predefinita.

Considerando questo, il giusto collegamento simbolico sarebbe:

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


10

In OS X Mavericks con Sublime Text 2 il seguente ha funzionato per me.

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

È utile individuare il file nel Finder e trascinarlo nella finestra del terminale in modo da poter essere sicuri che il percorso sia quello corretto, non sono un grande utente del terminale, quindi per me è stato più comodo. quindi puoi andare all'inizio del percorso e iniziare ad aggiungere le altre parti come i comandi UNIX abbreviati. Spero che sia di aiuto


9

Funziona !!!! per me su MacOS Sierra 10.12.2

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

e trovarlo nel terminale subl


9

Chiudi Sublime. Esegui questo comando. Lo disinstallerà. Non perderai le tue preferenze. Quindi eseguirlo di nuovo. Si legherà automaticamente subl.

brew install Caskroom/cask/sublime-text

2
Alla fine lo ha fatto, grazie mille per aver pubblicato questo! Ho cercato di far funzionare ST3 dalla riga di comando per mesi dopo la rottura del collegamento simbolico originale per qualche motivo. Comunque grazie!
Angelfirenze,

Grazie, ha funzionato, ma non è stato sufficiente eseguirlo due volte, è stato necessario rimuovere prima il sublime esistente sudo rm -rfnella directory sublime nella cartella delle applicazioni.
cardamomo

7

Aggiungendo questo al tuo .bashrc o .zshrc è una soluzione semplice.

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

6

Non dovresti inquinare la directory / usr / bin a meno che non sia davvero necessario. Uso sempre / usr / local / bin per quei file binari che non sono gestiti dal gestore dei pacchetti di distribuzione. Perché? Perché se il gestore pacchetti viene aggiornato sostituirà sempre i file in / usr / bin.

Quindi quello che farei è

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


5

se hai subl configurato per essere chiamato dalla riga di comando, il comando corretto per aprire la directory corrente è:

subl .

" OS X Command Line " è un collegamento su come assicurarsi che tutto sia impostato.


Restituisceln: /Users/###/bin/subl: No such file or directory
user1405049,

hai guardato il link in fondo alla mia risposta? prova a seguire il comandoln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" ~/bin/subl
danmanstx,

@danmanstx Ho creato il link simbolico nella mia /usr/local/bindirectory ma mi dà ancora l'errore. Noto che il mio pacchetto ST3 è stato installato su /Applications/Sublime Text.app/...e ha fatto la distinzione durante la creazione del mio collegamento simbolico. Tuttavia l'errore rimane - penso che abbia qualcosa a che fare con il mio .bash_profilefile.
rs77,

Nel mio caso il link punta aln -s /Volumes/Macintosh\ HD/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
NicolásKittsteiner,

5

Puoi semplicemente aggiungere un alias

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

Quindi dovresti essere in grado di aprire una cartella o qualsiasi altra cosa con

subl <path>

3

Per chiunque cerchi l'apertura di un file con Sublime su Mac dal terminale

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

3

Questo per farlo funzionare come un ALIAS, non un collegamento simbolico!

Ciò consentirà di eseguire comandi aggiuntivi nel terminale senza interrompere la sessione secondaria. Utilizzando molte delle risposte simboliche al link qui ( ln -s), il processo terminale può durare mentre si usa il testo Sublime. Se si desidera la separazione, creare un alias nel profilo Bash in questo modo:

  1. Test subldalla tua installazione ST:

    Per prima cosa, vai a una cartella nel Terminale che desideri aprire ST e inserisci il seguente comando:

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

    NOTA: potrebbe essere necessario sostituire Sublime\ Text.appil comando sopra Sublime\ Text\ 3.appo in Sublime\ Text\ 2.appbase alla posizione in cui l'applicazione è memorizzata nella Applicationsdirectory. Alla .fine del comando sopra si apre la directory di lavoro corrente in cui ci si trova (di nuovo assicurarsi di essere in una directory che contiene solo pochi file!).

    Se NON si ottiene Sublime Text che apre la directory di lavoro corrente, la serie di passaggi successiva NON funzionerà. Se non succede nulla o ricevi un errore dal Terminale, sarà perché non è stato possibile trovare l'applicazione Sublime Text. Ciò significherebbe che dovresti controllare ciò che hai digitato (ortografia, ecc.) O che Sublime Text non è installato!

  2. Controlla e aggiorna ".bash_profile":

    Ora aggiungi l'alias nel tuo profilo Bash. Aprilo via vim ~/.bash_profile. Queste sono le seguenti righe che riguardano il subllavoro sulla riga di comando per 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'
    

    Suggerisco di commentare sempre il codice qui con ##. La seconda riga è FACOLTATIVA e imposta Sublime Text come editor predefinito. Il flag -wè stato aggiunto e puoi scoprire di più sui flag andando ai documenti di testo Sublime: ST3 subl o ST2 subl

    Se si apportano modifiche a questo file dopo averlo chiuso, è necessario sourcequesto file nella sessione corrente o chiudere il terminale (scheda) e aprirne uno nuovo. È possibile sourcequesto file eseguendo il comando source ~/.bash_profileRisolvi eventuali errori prima di passare al passaggio finale.


2

Aggiungo che se stai eseguendo l'aggiornamento da Sublime Text 2, vai in / usr / bin ed elimina il tuo vecchio subl prima di seguire le stesse istruzioni sopra. Vale la pena l'aggiornamento.


2

Lo raggiungo con una sola riga nel terminale (con Sublime 3):

alias subl='/usr/local/bin/sublime'

2

Sto usando Mac Airbook, apri il tuo terminale e digita

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

Quindi digitare subl semplice e nome file

 subl index.py

Vedi sotto, usa quello con / usr / * local * / bin. Cerca di non aggiungere softlink personalizzati nelle directory di sistema.
guice

0

Sto usando Oh-My-Zshell e gli alias precedenti dichiarati non funzionavano per me, quindi ho scritto una semplice funzione bash che ti permetterà di aprire Sublime dalla riga di comando usando sublimeper aprire la cartella corrente nell'editor. Con la funzionalità di aggiunta per specificare un file da cui aprire l'editor.

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

Utilizzo per aprire la cartella corrente nel terminale:

$ sublime

Utilizzo per aprire una cartella specifica:

$ sublime path/to/the/file/to/open

0

Riassumendo i diversi modi in cui puoi realizzarlo:

  1. Per aprire un testo sublime dal terminale
open /Applications/Sublime\ Text.app/
  1. Per aprire un file specifico nel percorso corrente (o fornire il percorso al file che è necessario aprire) utilizzando il testo sublime
open -a /Applications/Sublime\ Text.app/ myFileToOpen.txt
  1. Rendi il tuo comando breve introducendo un nuovo alias chiamato 'sublime' e usalo

    un. apri bash_profile:

    nano ~/.bash_profile

    b. copia questa riga per creare l'alias e salvare e riavviare il terminale

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

    c. utilizzo: apple.txt si aprirà con testo sublime (fornire il percorso del file se necessario)

    sublime apple.txt


-1

Sono su un mac e questo ha funzionato per me:

open /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.