Como iniciar várias instâncias do MonoDevelop no Mac?

121

Gostaria de abrir uma nova instância do MonoDevelop para trabalhar em um projeto diferente no Mac, e atualmente o sistema operacional está me impedindo de abrir uma nova instância.

miguel.de.icaza
fonte

Respostas:

173

No Mac, se você tiver um aplicativo aberto e tentar iniciá-lo novamente, o Mac mudará para o aplicativo aberto. Você pode forçá-lo a abrir uma nova instância, passando a opção "-n" para o iniciador. Em um terminal, execute

open -n /Applications/MonoDevelop.app

Observe também que o MonoDevelop é capaz de abrir várias soluções. Para fazer isso, basta desmarcar a caixa de seleção "fechar solução atual" na caixa de diálogo "Abrir" ou mantenha pressionada a tecla Control ao clicar em um dos projetos abertos recentemente na página de boas-vindas.

EDIT: Para o Xamarin Studio, que substituiu o MonoDevelop no Mac, o comando é

open -n /Applications/Xamarin\ Studio.app

EDIT 2:

Para o Visual Studio para Mac, que substituiu o Xamarin Studio, o comando é

open -n /Applications/Visual\ Studio.app
Mikayla Hutchinson
fonte
2
Oi - Estou executando o MonoDevelop 2.4 no Mac OS e não estou vendo a caixa de seleção ou o comportamento da tecla Control. Isso mudou recentemente?
David Moles
2
Ainda funciona para mim. Observe que a caixa de seleção e a dica na página de boas-vindas aparecerão apenas se você já tiver uma solução aberta e a caixa de seleção somente será exibida quando você realmente selecionar uma solução ou projeto na caixa de diálogo.
Mikayla Hutchinson
Atualize para o rótulo da caixa de seleção, caso alguém o encontre, agora diz "Fechar espaço de trabalho atual"
Tiago
Para sua informação - se você usar esse método, as soluções adicionais serão todas abertas na mesma janela de monodesenvolvimento ... isso não é exatamente o que eu esperava usando o VS / MD no Windows. Aparentemente, temos de recorrer a métodos abaixo para obter janelas separadas para soluções separadas ..
David Jeske
2
Ainda funciona no Xamarin Studio, embora eu ainda estou desconfiado de que Miguel armou um softball: open -n /Applications/Xamarin\ Studio.app/ ; ^)
ruffin
40

Usar o shell para inserir o comando, conforme descrito por outras pessoas para iniciar uma instância extra, é bom, mas eu prefiro ter um ícone no dock no qual posso clicar.

É fácil de fazer:

  1. Abra o AppleScript Editor e digite o seguinte:

    do shell script "open -n /Applications/MonoDevelop.app/"

  2. Salve com um nome como "MonoDevelop Launcher" e certifique-se de especificar Aplicativo para o formato do arquivo.

  3. Arraste o ícone para o seu dock.

  4. Verifique o comentário do bright abaixo sobre a substituição do ícone genérico pelo MonoDevelop.

Clique repetidamente para aproveitar o grooviness de várias instâncias do MonoDevelop.

Subfusão
fonte
1
A melhor das duas outras respostas combinadas
BlackTigerX
10
Para substituir o ícone do iniciador de scripts pelo ícone MonoDevelop, você pode abrir o conteúdo do pacote e substituir o arquivo applet.icns pelo ícone monodevelop (a partir do conteúdo do pacote MonoDevelop.) Lembre-se de renomear o arquivo para applet.icns após copiá-lo. .
brilhante
1
Perfeito! Obrigado Subfuzion, e obrigado a bright pela dica de substituição de ícones.
Leigh Bowers
Boa dica do brilhante sobre como alterar o ícone. Além disso, veja a resposta abaixo de Glinkot e o comentário de Luke sobre o manuseio do espaço no Xamarin Studio, que substitui o MonoDevelop.
Subfuzion
13

Por conveniência, acabei de criar três cópias do MonoDevelop.

Destaque MonoDevelop no Finder, copie, cole, renomeie a nova cópia para "MonoDevelop-2" e repita para sua satisfação.

Isso também me ajuda a acompanhar o que está acontecendo em diferentes instâncias. Normalmente, mantenho meu projeto mais importante aberto em "MonoDevelop", uso "MonoDevelop-2" para testar idéias relacionadas ao meu projeto principal e "MonoDevelop-3" para rascunhos aleatórios.

Quando você pressiona a tecla alt (aba-Apple-aba (aba-comando (whvr))), o nome do executável aparece abaixo do ícone na lista de aplicativos. Portanto, desde que eu cumpra minha convenção, sempre sei (ish) o conteúdo da instância na qual estou pressionando a tecla Alt, independentemente de quantas outras janelas de aplicativos eu abra. Não preciso percorrê-los para descobrir.

Não é perfeito - quando eu tenho o "MonoDevelop" em execução, se eu tentar acionar um dos outros, a primeira tentativa de iniciar falhará. Você apenas tenta acioná-lo novamente - ele funciona na segunda vez. Isso só acontece desde a versão mais recente, e acho que pode ter algo a ver com atualizações automáticas ou gerenciamento de suplementos. Não investiguei muito. Como não há problemas, uma vez em funcionamento, não me preocupo com isso :)

O resultado é que, com o método start-it-two, para qualquer instância adicional do MonoDevelop que você deseja iniciar, você acaba clicando quatro vezes em vez de clicar duas vezes. Adiciona cerca de quinze segundos ao processo e, como eu tenho o MonoDevelop (junto com "MonoDevelop-1" e "MonoDevelop-2") em execução o tempo todo, ele adiciona, talvez , trinta segundos extras de trabalho por semana. Um comércio justo pela conveniência, acho.

Um pouco hacky, mas funcionou bem para mim.

E todas as crianças legais estão fazendo isso.

Rory Blyth
fonte
1
Boa ideia! Ainda funciona se você criar um link simbólico em vez de copiar?
22611 Mikayla Hutchinson
1
As falhas de inicialização são um bug conhecido na nova varredura do registro de suplemento. Quando o MD detecta que as dlls foram alteradas ou "movidas", ele recria o registro do addin e, às vezes, trava quando depois disso. Há uma variável de ambiente que você pode definir para usar um local de registro diferente, que você pode usar para separar os registros das três instâncias, embora não tenha certeza de como você definiria envios por aplicativo no mac. Talvez seja necessário corrigi-lo no script MonoDevelop.app/Contents/macOS/MonoDevelop.
22611 Mikayla Hutchinson
Não tentei nada além de copiar, embora sua ideia faça muito mais sentido - não seria necessário duplicar o esforço ao obter as versões mais recentes do MonoDevelop. Quando faço coisas assim (criando soluções sujas para mim), tenho a tendência de seguir o caminho mais preguiçoso para satisfazer meus modos nerd-luxuriosos. Mas agora eu quero saber. É claro, eu poderia ter feito isso em muito menos tempo do que demorou para escrever esse comentário ... Isso está derrotando o propósito da minha preguiça. Eu preciso ir. Devo ir e tentar ...
Rory Blyth
Não sei por que esperei tanto tempo para responder a isso - tentei fazer um link simbólico assim que escrevi o comentário acima - não funcionou: | OS X não foi enganado. Então, eu ainda estou copiando. Mas, ei - isso funciona. Pensei em algumas maneiras de automatizá-lo e transmitir informações mais significativas do que apenas -2, -3 etc. no nome do arquivo para tabular comandos nos aplicativos, mas ainda não atingi o limite Necessidade> Preguiça que solicita me para construir minhas ferramentas :)
Rory Blyth
6

--XAMARIN STUDIO--

Como em fevereiro de 2013, o Monodevelop é chamado Xamarin Studio, e o fato de ter um espaço significa que o descrito acima não funciona. Depois de algumas brincadeiras, descobri que você precisa aninhar dois tipos de citações, e as instruções abaixo funcionarão em maçãs:

do shell script "open -n '/Applications/Xamarin Studio.app/'"

Aproveitar

Glinkot
fonte
5
Funciona, você só precisa escapar do espaço, por exemplo:open -n /Applications/Xamarin\ Studio.app
Luke
Mais uma dica, você precisa escapar a barra invertida no script também, comodo shell script "open -n /Applications/Xamarin\\ Studio.app/"
Mick Byrne
6

Além disso, você pode usar a versão mais curta:

Open -n -a "Xamarin Studio.app"

Editar : no Visual Studio para Mac e / ou mais curto, o comando é

Open -n -a "Visual Studio"
Denis Gordin
fonte
3

Se você concorda em abrir duas soluções em uma instância do Xamarin Studio, pode fazer isso navegando para "Arquivo" -> "Soluções recentes" e, em seguida, pressione Ctrl e clique na outra solução. Isso abre as duas soluções na mesma instância do Xamarin studio.

willem
fonte
1

Edite seu ~ / .bashrc ou ~ / .zshrc e configure o seguinte atalho:

alias xam = 'open -n /Applications/Xamarin\ Studio.app'

Use da seguinte forma a partir da CLI:

xam ReactiveUI.sln
Geoffrey Huntley
fonte
1

Mais uma maneira mais fácil ....

Basta abrir o terminal Arraste o aplicativo Xamarin Studio do aplicativo, ele seguirá o caminho /Applications/Xamarin\ Studio.appe gravará o open -n antes do/Applications/Xamarin\ Studio.app

Agora o comando completo é como open -n /Applications/Xamarin\ Studio.app

Pritish
fonte
0

Basta abrir o terminal Write ou abaixo do comando, você pode alterar o número do nome da instância, por exemplo (/ Xamarin \ Studio1), abrir outro Xamarin Studio, por exemplo (/ / Xamarin \ Studio1)

$ open -na /Applications/Xamarin\ Studio.app --args -DataPath /Users/$(whoami)/Library/Application\ Support/Xamarin\ Studio1

Usando acima, você pode criar qualquer instância múltipla .app.

Patel Pankaj
fonte