Abra o Sublime Text 2 com nova aba em vez de nova janela

3

Eu tenho um alias para abrir arquivos no Sublime Text 2:

alias sub='/Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2'

Mas isso gera outra instância do Sublime Text 2 (completa com a restauração de todos os arquivos e pastas abertos na minha outra instância).

Eu gostaria de obter arquivos para abrir como uma guia na instância atual, que deve ser possível, pois é isso que clique com o botão direito > Abrir com ... > Texto Sublime 2 faz.

Alguma ideia de como fazer isso a partir da linha de comando?

    
por Summitch 17.01.2013 / 17:20

1 resposta

3

O motivo pelo qual não funciona é que você tem o alias errado. Aqui está o correto para o Sublime Text 3:

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

Este é um alias que o Sublime Text fornece especificamente para o macOS. Ele não bloqueará a execução e, por padrão, arquivos abertos em uma guia ao lado dos que já estão abertos.

Se você quiser saber mais sobre por que seu alias não funcionou, continue lendo.

Os pacotes de aplicativos no OS X possuem um sufixo .app , mas, quando iniciados, eles lançam um binário especificado em Info.plist no pacote. Este é o binário do seu alias, na pasta MacOS .

A execução de um aplicativo a partir da GUI ou por meio dos Serviços de inicialização (por exemplo, osascript ou open ) torna o OS X aberto nesse binário, mas ao mesmo tempo garante que ele esteja apenas lançando uma instância desse aplicativo. Quando você chama o binário diretamente, você ignora essa restrição e ativa outra instância do aplicativo - a menos que o aplicativo tenha medidas para impedir que duas instâncias sejam iniciadas, que normalmente o OS X manipula.

Além disso, como efeito colateral, o lançamento do binário bloqueará a execução do terminal até você sair do programa ou suspendê-lo para o segundo plano. O uso do subl do Sublime Text embutido retorna o controle para o seu terminal, já que ele realmente usa uma chamada do Launch Services para abrir o pacote Sublime em vez de endereçar o binário em MacOS .

Como você está basicamente lançando uma segunda instância do Sublime Text, ele mostrará os arquivos que ele abriu anteriormente, porque esse é o comportamento padrão.

    
por 17.01.2013 / 21:08