Abrir texto sublime do terminal no macOS


417

No terminal quando eu uso .subl

Retorna -bash: .subl: command not found

Alguém sabe como abrir o Sublime Text 3 a partir da linha de comando no macOS?


3
Como você foi com isso? Também estou tendo problemas com o sublST3. Eu criei o link simbólico no /usr/local/bin/sublqual aponta /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl. Eu até adicionei export PATH=/usr/local/bin:$PATHe export EDITOR="subl -w"no meu ~/.bash_profile- ainda assim ele não funciona e recebo o mesmo erro.
rs77

Estou tendo um problema estranho no qual tenho que abrir a pasta subl para obter o comando para executar. O seguinte é executado: 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 o Sublime Text 3 finalmente abre em uma nova sessão. Eu tenho o Homebrew instalado e segui as instruções para isso.
Angelfirenze

4
Se você deseja abrir o arquivo file.txtcom Sublime Text na linha de comando, o comando open -a "Sublime Text" file.txtpode ser mais adequado.
Mareoraft

O comando não é .subl, é subl.
the Tin Man

Respostas:


627

Finalmente consegui que isso funcionasse na minha caixa OSX. Eu usei estas etapas para fazê-lo funcionar:

  1. Teste a sublpartir da sua instalação do ST:

    Primeiro, navegue até uma pequena pasta no Terminal que você deseja que o ST abra e digite o seguinte comando:

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

    NOTA: Pode ser necessário substituir Sublime\ Text.appo comando acima para Sublime\ Text\ 3.appou Sublime\ Text\ 2.appdependendo de onde o aplicativo está armazenado em seu Applicationsdiretório. O .final do comando acima abre o diretório de trabalho atual em que você está localizado (novamente, verifique se você está em um diretório que contém apenas alguns arquivos!).

    Se você NÃO receber o Texto Sublime abrindo seu diretório de trabalho atual, o próximo conjunto de etapas NÃO funcionará. Se nada acontecer ou você receber um erro do Terminal, será porque não foi possível encontrar o aplicativo Sublime Text. Isso significaria que você teria que verificar o que digitou (ortografia etc.) OU que o Texto Sublime não está instalado!

  2. Marque ".bash_profile":

    Agora é hora de criar seu link simbólico na sua PATHpasta, MAS, antes de fazermos, vamos verificar seu arquivo de perfil usando nano ~/.bash_profile. Estas são as seguintes linhas que dizem respeito ao subltrabalho na linha de comando do Sublime Text:

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

    A primeira linha define o local em que você deseja que o Terminal procure binários em sua máquina. Vou armazenar meu link simbólico no /usr/local/bindiretório - acho que você pode armazená-lo em qualquer lugar, desde que notifique o Terminal onde procurar binários.

    A segunda linha é OPCIONAL e apenas define o Texto Sublime como o editor padrão. A bandeira -wfoi adicionada e você pode descobrir mais sobre bandeiras, acessando os documentos de texto sublime: ST3 subl ou ST2 subl

    Se você fizer alguma edição neste arquivo depois de fechá-lo, precisará executar o comando:

    source ~/.bash_profile 
    

    para compilar suas edições recém-aplicadas. Se você encontrar algum erro após a fonte do arquivo, conserte-o antes de passar para a etapa final.

  3. Crie um link simbólico para o texto sublime:

    Agora no caminho escolhido (eu usei /usr/local/bin), você agora insere o seguinte comando:

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

    O /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/sublestar exatamente no mesmo local como o que você entrou e verificado como trabalhar no passo 1 acima. O /usr/local/bin/subllocal onde você deseja que o link simbólico seja localizado - precisa ser um dos PATHlocais da ETAPA 2 acima.

    Agora, quando você navega para uma pasta ou arquivo que deseja abrir no Texto Sublime, agora basta digitar sublseguido pelo nome do arquivo ou .para abrir o diretório de trabalho atual.


3
Eu tive um problema com ST3 onde quando eu digitei pela primeira vez em subl .gostaria de obter um editor Sublime chamado untitlede não referenciar qualquer arquivo no diretório que eu estava. Fazer export EDITOR='subl -w'à minha .bash_profilefixo isso.
Richard Ortega

4
Isso funcionou para mim, mas tive que remover primeiro o link simbólico para o antigo arquivo subl.
Giles Butler

3
isso funcionou lindamente até o último passo. Estou recebendo ln: /usr/subl: Permission deniedpensamentos?
stevenspiel

2
Acho que encontrei a resposta aqui stackoverflow.com/questions/10196449/...
stevenspiel

1
Como o @ mr.musicman encontrou, talvez seja necessário usar sudona frente do comando na etapa 3. #
Sarah Lewis

312

Para MAC 10.8+:

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

trabalhou.


1
Eu tive que usar o diretório inicial, ~, em vez de / usr / bin, para fazer isso funcionar para mim ... "sudo ln -s / Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl ~ / bin / subl "
Ben Haley

Isso está funcionando, mas não é abrir o mesmo dobrado onde eu corri subi
Jitendra Vyas

1
Para sublime2sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl
Montaro 20/05

Trabalhou no OS X 10.10.4
Kuchi

59
@Tinple Isso funciona no 10.11 sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl Veja a resposta aqui para saber
Ross

152

Assumindo:

  • Você já instalou o Homebrew.
  • / usr / local / bin está no seu $ PATH.
  • Você está em Yosemite ou El Capitain.

O MacOS Sierra 10.12.5 também é confirmado por David Rawson e o MacOS Sierra 10.12.6 confirmado por Alexander K.

Execute o seguinte script no Terminal para criar o link simbólico específico.

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

Então:

subl .

Clique em Hit Returne ele deve abrir instantaneamente Sublime Text.


3
@ChutipongRoobklom Thanks. Funcionou para mim macOS Sierra Version: 10.12 (16A323).
Subhajit

Trabalhando no macOS Sierra 10.12.5. Obrigado
David Rawson

3
Pode confirmar que também funciona no macOS Sierra 10.12.6. Obrigado!
Alexander K.

meu caminho sublime texto era diferente, eu acho que porque eu estou usando sublime 2 ln -s / Applications / Sublime \ Text \ 2.app/Contents/SharedSupport/bin/subl / usr / / bin local / subi
talsibony

1
Funciona no High Sierra OSX 10.13.3
chichilatte 27/03

66

Isso funcionou para mim (estou usando o OS X Mavericks)

Primeiro, crie um link simbólico:

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

Agora você pode abrir sublime com

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

1
Eu tive que sudo rm / usr / bin / subl para fazê-lo funcionar no OSX 10.9, obrigado!
dnlcrl

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

por que precisamos de aspas? funciona com aspas para mim, mas não funciona sem elas?
precisa

11
ln: / usr / bin / subl: Operação não permitida
Ken Ratanachai S.

16
@KenRatanachaiS. Use /usr/local/bin/subl, em vez de /usr/bin/subl.
Josh Foskett 23/12/19

65

Estou usando oh-my-zsh no Mac OSX Mavericks e o link do símbolo não funcionou para mim, então adicionei um alias no meu arquivo .zshrc:

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

Abra um novo terminal e você deve começar a digitar subl.


O mesmo aqui, mas para Bash.
merqlove

2
Mesmo aqui, isso funcionou para mim, mas eu precisava para alterá-lo para texto Sublime 2 com a seguinte seqüência: "Sublime \ Text \ 2.app/"
Joshua Soileau

Isto é para ST 2, eu acho. ST 3 vem com CLI, mas ainda não consigo executá-lo.
atilkan

@emrah Eu estou usando ST3 #
Thomas Bindzus 14/10

@ThomasBindzus Eu descobri mais tarde. Obrigado.
atilkan

43

O que vou usar é muito simples.

open -a "sublime text" [file]

isso abre o texto sublime imediatamente. Você pode especificar o arquivo para abrir como um parâmetro opcional, por exemplo, para abrir "myfile.txt" no diretório atual.


3
Se você acessar mais rapidamente, poderá criar um alias. Digite nano .bash_profile e cole em: alias subl = "open -a 'sublime text'"
mbokil 21/07/2015

1
Obrigado! É a única solução que funcionou para mim. Para abri-lo em uma nova guia na janela existente (não em uma nova), consulte stackoverflow.com/questions/9961350/…
Dennis Golomazov

Eu acho que essa é a opção mais limpa de todas. Obrigado!
grooveplex

Como você modifica isso para criar um arquivo que realmente não existe? Eu sei como usar open -a sublimetext para abrir um arquivo que existe, mas se estou criando um novo arquivo de texto, para que devo modificar o script aberto?
esaruoho 27/09/19

28

Existe uma maneira fácil de fazer isso. Leva apenas algumas etapas e você não precisa usar muito a linha de comando. Se você é novo na linha de comando, esta é a maneira de fazê-lo.

Etapa 1: Localizando o arquivo bin para colocar o arquivo executável subl

  1. Abra o terminal
  2. digite cd ..--------------------- isso deve voltar um diretório
  3. digite ls------------------------ para ver uma lista de arquivos no diretório
  4. digite cd ..--------------------- até obter uma pasta que contém usr
  5. digite open usr--------------- isso deve abrir o localizador e você verá algumas pastas
  6. abra a pasta bin ------- é aqui que você copiará seu sublime arquivo executável.

Etapa 2: Localizando o arquivo executável

  1. abra o localizador
  2. Em arquivo, abra uma nova janela do localizador (CMD + N)
  3. Navegue para a pasta de aplicativos
  4. encontre o texto sublime e clique com o botão direito para obter um menu suspenso
  5. Clique em Mostrar Conteúdo do Pacote
  6. Abra Conteúdo / Suporte compartilhado / bin
  7. Copie o arquivo subl
  8. Cole-o na pasta bin da pasta usr que encontramos anteriormente
  9. No terminal, digite subl-------------- isso deve abrir Sublime Text

Verifique se ele é copiado e se não é um atalho. Se você tiver algum problema, visualize a pasta usr / bin como ícones e cole o subl em uma área vazia na pasta. Não deve ter uma seta de atalho na imagem do ícone.


Depois de tentar as outras respostas, essa foi a única a trabalhar para mim. Mac OS X Yosemite 10.10.1.
tmthyjames

Isso não funcionou para mim no Mac OS X El Capitan - não consegui copiar para arquivar. A resposta de Chutipong Roobklom funcionou, no entanto.
código é o seguinte

A partir do El Capitan e superiores, você precisa colar o arquivo subl na pasta / usr / local / bin. Então siga o passo 2 ao ponto 6, abra-o no terminal e execute o comando sudo cp subl / usr / local / bin. Isso ocorre por causa do novo recurso System Integrity Protection.
PeeJee

18

Tente isso.

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

^ Use este. Soft-links para / usr / * local * / bin.
guice

16

O comando Symlink da documentação do Sublime Text 3 não funcionará, pois não há ~/bin/diretório no local inicial no Mac OS X El Capitan ou posterior.

Portanto, precisaremos colocar o link simbólico no /usr/local/bincaminho, pois esse caminho estaria em nossa $PATHvariável na maioria dos casos .

Portanto, o seguinte comando deve fazer o truque:

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

Depois de criar o link simbólico corretamente, você poderá executar o Sublime Text 3 assim: subl . (. Significa o diretório atual)


12

Você pode criar um novo alias no Terminal:

nano ~/.bash_profile

Copie esta linha e cole-a no editor:

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

Pressione control+ e x, em seguida y, entersalve e feche-o.

Feche todas as janelas do Terminal e abra-o novamente.

É isso, agora você pode usar subl filenameousubl .


11

Por favor, note para não escrever, /usr/binmas em vez disso /usr/local/bin. O primeiro é para aplicativos que escrevem eles mesmos o binário no sistema e o mais recente é para esse uso específico de criar nossos próprios binários em todo o sistema (que é o nosso caso aqui ao fazer a ligação simbólica).

Também /usr/local/biné lido depois /usr/bine, portanto, também é um bom lugar para substituir qualquer aplicativo padrão.

Considerando isso, o link simbólico correto seria:

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


10

No OS X Mavericks executando o Sublime Text 2, o seguinte funcionou para mim.

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

É útil localizar o arquivo no localizador e arrastá-lo e soltá-lo na janela do terminal para garantir que o caminho seja o correto. Não sou um grande usuário do terminal, portanto, isso foi mais confortável para mim. então você pode ir para o início do caminho e começar a adicionar outras partes, como os comandos abreviados do UNIX. Espero que isto ajude


9

Funciona !!!! para mim no MacOS Sierra 10.12.2

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

e encontra no terminal subl


9

Feche Sublime. Execute este comando. Ele irá desinstalá-lo. Você não perderá seus prefs. Em seguida, execute-o novamente. Ele será vinculado automaticamente subl.

brew install Caskroom/cask/sublime-text

2
Isso finalmente aconteceu, muito obrigado por postar isso! Eu tenho tentado executar o ST3 a partir da linha de comando por meses após a quebra do link simbólico original por algum motivo. De qualquer forma, obrigado!
Angelfirenze 31/01

Obrigado, isso funcionou, mas apenas executá-lo duas vezes não foi suficiente, foi necessário remover primeiro o sublime existente sudo rm -rfno diretório sublime da pasta de aplicativos.
Cardamomo #

7

Adicionar isso a ur .bashrc ou .zshrc é uma solução simples.

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

6

Você não deve poluir o diretório / usr / bin, a menos que realmente precise. Eu sempre uso / usr / local / bin para os binários que não são gerenciados pelo gerenciador de pacotes de distribuição. Por quê? Porque se o gerenciador de pacotes for atualizado, sempre substituirá os arquivos em / usr / bin.

Então, o que eu faria é

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


5

se você tiver configurado a subl para ser chamado na linha de comando, o comando apropriado para abrir o diretório atual é:

subl .

" OS X Command Line " é um link sobre como garantir que tudo esteja configurado.


Ele retornaln: /Users/###/bin/subl: No such file or directory
user1405049

você olhou para o link na parte inferior da minha resposta? tente seguir o comandoln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" ~/bin/subl
danmanstx 29/04

@danmanstx Eu criei o link simbólico no meu /usr/local/bindiretório, mas ele ainda me dá o erro. Percebo que meu pacote ST3 foi instalado /Applications/Sublime Text.app/...e fez a distinção ao criar meu link simbólico. No entanto, o erro permanece - acho que tem algo a ver com o meu .bash_profilearquivo.
Rs77

No meu caso, o link aponta paraln -s /Volumes/Macintosh\ HD/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
NicolásKittsteiner 15/09/16

5

Você pode apenas adicionar um alias

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

Então, você poderá abrir uma pasta ou qualquer outra coisa com

subl <path>

3

Para quem procura abrir um arquivo com o Sublime no mac a partir do terminal

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

3

Isso é para fazê-lo funcionar como um ALIAS, não como um link simbólico!

Isso permitirá que você execute comandos adicionais no terminal sem interromper a sessão subl. Usando muitas das respostas do link simbólico aqui ( ln -s), faça com que o processo do terminal continue enquanto estiver usando texto sublime. Se você deseja a separação, crie um alias no perfil do Bash da seguinte forma:

  1. Teste a sublpartir da sua instalação do ST:

    Primeiro, navegue até uma pasta no Terminal que você deseja que o ST abra e digite o seguinte comando:

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

    NOTA: Pode ser necessário substituir Sublime\ Text.appo comando acima para Sublime\ Text\ 3.appou Sublime\ Text\ 2.appdependendo de onde o aplicativo está armazenado em seu Applicationsdiretório. O .final do comando acima abre o diretório de trabalho atual em que você está localizado (novamente, verifique se você está em um diretório que contém apenas alguns arquivos!).

    Se você NÃO receber o Texto Sublime abrindo seu diretório de trabalho atual, o próximo conjunto de etapas NÃO funcionará. Se nada acontecer ou você receber um erro do Terminal, será porque não foi possível encontrar o aplicativo Sublime Text. Isso significaria que você teria que verificar o que digitou (ortografia etc.) OU que o Texto Sublime não está instalado!

  2. Verifique e atualize ".bash_profile":

    Agora adicione o alias no seu perfil do Bash. Abra-o via vim ~/.bash_profile. Estas são as seguintes linhas que dizem respeito ao subltrabalho na linha de comando do 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'
    

    Sugiro sempre comentar seu código aqui com ##. A segunda linha é OPCIONAL e apenas define o Texto Sublime como o editor padrão. A bandeira -wfoi adicionada e você pode descobrir mais sobre bandeiras, acessando os documentos de texto sublime: ST3 subl ou ST2 subl

    Se você fizer alguma edição neste arquivo depois de fechá-lo, precisará sourcedeste arquivo na sua sessão atual ou feche o terminal (guia) e abra um novo. Você pode sourceesse arquivo executando o comando source ~/.bash_profileResolver quaisquer erros antes de passar para a etapa final.


2

Eu acrescentaria que, se você estiver atualizando do Sublime Text 2, entre em / usr / bin e exclua seu subl antigo antes de seguir as mesmas instruções acima. Vale a pena a atualização.


2

Consigo isso com apenas uma linha no terminal (com o Sublime 3):

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

2

Estou usando o mac airbook, abra seu terminal e digite

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

Em seguida, digite subl simples e nome do arquivo

 subl index.py

Veja abaixo, use aquele com / usr / * local * / bin. Tente não adicionar links personalizados nos diretórios do sistema.
guice

0

Estou usando o Oh-My-Zshell e os aliases anteriores declarados não funcionaram para mim, então escrevi uma função simples do bash que permitirá abrir o Sublime a partir da linha de comando, usando sublimepara abrir a pasta atual no editor. Com a funcionalidade de adição para especificar um arquivo do qual abrir o editor.

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

Uso para abrir a pasta atual no terminal:

$ sublime

Uso para abrir uma pasta específica:

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

0

Resumindo as diferentes maneiras de realizar isso:

  1. Para abrir texto sublime do terminal
open /Applications/Sublime\ Text.app/
  1. Para abrir um arquivo específico no caminho atual (ou fornecer o caminho para o arquivo que você precisa abrir) usando texto sublime
open -a /Applications/Sublime\ Text.app/ myFileToOpen.txt
  1. Faça seu comando abrindo introduzindo um novo apelido chamado 'sublime' e use-o

    uma. abra bash_profile:

    nano ~/.bash_profile

    b. copie esta linha para criar o alias e salve e reinicie o terminal

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

    c. use: apple.txt será aberto com texto sublime (forneça o caminho do arquivo, se necessário)

    sublime apple.txt


-1

Eu estou em um mac e isso funcionou para mim:

open /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.