¿Cómo puedo iniciar varias instancias de MonoDevelop en Mac?

121

Me gustaría abrir una nueva instancia de MonoDevelop para trabajar en un proyecto diferente en la Mac, y el sistema operativo actualmente me impide abrir una nueva instancia.

miguel.de.icaza
fuente

Respuestas:

173

En Mac, si tiene una aplicación abierta e intenta iniciarla nuevamente, la Mac simplemente cambia a la aplicación abierta. Puede forzarlo a abrir una nueva instancia pasando la opción "-n" al lanzador. En una terminal, corre

open -n /Applications/MonoDevelop.app

Tenga en cuenta también que MonoDevelop es capaz de abrir múltiples soluciones. Para hacer esto, simplemente desmarque la casilla de verificación "cerrar solución actual" en el cuadro de diálogo "Abrir", o mantenga presionada la tecla de control al hacer clic en uno de los proyectos abiertos recientemente en la Página de bienvenida.

EDITAR: Para Xamarin Studio, que ha reemplazado MonoDevelop en Mac, el comando es

open -n /Applications/Xamarin\ Studio.app

EDITAR 2:

Para Visual Studio para Mac, que ha reemplazado a Xamarin Studio, el comando es

open -n /Applications/Visual\ Studio.app
Mikayla Hutchinson
fuente
2
Hola, estoy ejecutando MonoDevelop 2.4 en Mac OS y no veo esa casilla de verificación ni ese comportamiento de la tecla de control. ¿Ha cambiado esto recientemente?
David Moles
2
Aún funciona para mí. Tenga en cuenta que la casilla de verificación y la sugerencia en la Página de bienvenida solo aparecen si ya tiene una solución abierta, y la casilla de verificación solo aparece cuando realmente selecciona una solución o proyecto en el cuadro de diálogo.
Mikayla Hutchinson
Actualice la etiqueta de la casilla de verificación en caso de que alguien encuentre esto, ahora dice "Cerrar el espacio de trabajo actual"
Tiago
FYI: si usa este método, todas las soluciones adicionales se abren en la misma ventana de desarrollo único ... esto no es lo que esperaba de usar VS / MD en Windows. Aparentemente tenemos que recurrir a los métodos a continuación para obtener ventanas separadas para soluciones separadas ...
David Jeske
2
Todavía funciona en Xamarin Studio, aunque todavía sospecho que Miguel lanzó una pelota de softball open -n /Applications/Xamarin\ Studio.app/
:;
40

Usar el shell para ingresar el comando como otros han descrito para lanzar una instancia adicional está bien, pero prefiero tener un icono en el dock en el que pueda hacer clic.

Es facil de hacer:

  1. Abra el Editor AppleScript e ingrese lo siguiente:

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

  2. Guarde con un nombre como "MonoDevelop Launcher" y asegúrese de especificar la Aplicación para el formato de archivo.

  3. Arrastra el ícono a tu base.

  4. Asegúrese de revisar el comentario de bright a continuación sobre cómo reemplazar el ícono genérico con MonoDevelop.

Haga clic repetidamente para disfrutar de la frescura de múltiples instancias de MonoDevelop.

Subfuzion
fuente
1
La mejor de las otras dos respuestas combinadas
BlackTigerX
10
Para reemplazar el ícono del iniciador de scripts con el ícono MonoDevelop, puede abrir el contenido del paquete y reemplazar el archivo applet.icns con el ícono monodevelop (del contenido del paquete MonoDevelop). Solo recuerde cambiar el nombre del archivo a applet.icns después de copiarlo. .
brillante
1
¡Perfecto! Gracias Subfuzion, y gracias a bright por la punta de reemplazo del ícono.
Leigh Bowers
Un buen consejo de Bright para cambiar el ícono. Además, vea la respuesta a continuación de Glinkot y el comentario de Luke sobre el manejo del espacio en Xamarin Studio, que reemplaza a MonoDevelop.
Subfuzion
13

Por conveniencia, acabo de crear tres copias de MonoDevelop.

Resalte MonoDevelop en Finder, copie, pegue, cambie el nombre de la nueva copia a "MonoDevelop-2" y repita a su gusto.

También me ayuda a hacer un seguimiento de lo que está sucediendo en diferentes instancias. Normalmente mantengo mi proyecto más importante abierto en "MonoDevelop", uso "MonoDevelop-2" para probar ideas relacionadas con mi proyecto principal y "MonoDevelop-3" para scratch aleatorio.

Cuando alt-tab (open-Apple-tab (command-tab (whvr))), el nombre del ejecutable aparece debajo de su icono en la lista de aplicaciones, por lo tanto, siempre que cumpla con mi convención, siempre sé (ish) el contenido de la instancia a la que estoy haciendo tabulación alternativa, independientemente de cuántas otras ventanas de aplicaciones haya abierto. No tengo que pasar por ellos para resolverlo.

No es perfecto: cuando tengo "MonoDevelop" ejecutándose, si intento encender uno de los otros, el primer intento de inicio fallará. Intenta encenderlo de nuevo, funciona la segunda vez. Sin embargo, esto solo ha estado sucediendo desde la compilación más reciente, y creo que podría tener algo que ver con las actualizaciones automáticas o la administración de complementos. No lo he investigado demasiado. Como no hay problemas una vez en funcionamiento, no me preocupo por eso :)

El resultado es que, con el método start-it-two, para cualquier instancia adicional de MonoDevelop que desee iniciar, terminará teniendo que hacer clic cuádruple en lugar de hacer doble clic. Agrega alrededor de quince segundos al proceso, y como tengo MonoDevelop (junto con "MonoDevelop-1" y "MonoDevelop-2") ejecutándose todo el tiempo, agrega, tal vez , treinta segundos adicionales de trabajo cada semana. Un comercio justo para la conveniencia, me parece.

Un poco hacky, pero me ha funcionado bien.

Y todos los niños geniales lo están haciendo.

Rory Blyth
fuente
1
¡Gran idea! ¿Sigue funcionando si creas un enlace simbólico en lugar de copiar?
Mikayla Hutchinson el
1
Las fallas de inicio son un error conocido en el reescaneo del registro del complemento. Cuando MD detecta que sus dlls han cambiado o "movido", reconstruye el registro de complementos y, a veces, se bloquea cuando ocurre esto. Hay una variable de entorno que puede configurar para que use una ubicación de registro diferente, que podría usar para separar los registros de sus tres instancias, aunque no estoy seguro de cómo establecería los entornos por aplicación en Mac. Puede que tenga que parcharlo en el script MonoDevelop.app/Contents/macOS/MonoDevelop.
Mikayla Hutchinson el
No he intentado nada más que simplemente copiar, aunque su idea tiene mucho más sentido: no tendría que duplicar el esfuerzo al tomar las últimas compilaciones de MonoDevelop. Cuando hago cosas como esta (creando soluciones sucias para mí), tiendo a tomar la ruta más perezosa para satisfacer mis costumbres nerd. Pero ahora quiero saber. Por supuesto, podría haberlo hecho en mucho menos tiempo del que me llevó escribir este comentario ... Esto está frustrando el propósito de mi pereza. Tengo que irme. Debo ir a probar ...
Rory Blyth
No sé por qué esperé tanto tiempo para responder a esto, intenté hacer un enlace simbólico tan pronto como escribí el comentario anterior, no funcionó: | OS X no fue engañado. Así que todavía estoy copiando. Pero, oye, funciona. He pensado en algunas formas de automatizarlo y transmitir información más significativa que solo -2, -3, etc. en el nombre de archivo para tabular comandos a través de aplicaciones, pero aún no he alcanzado el umbral de Necesidad> Pereza que indica yo para construir mis herramientas :)
Rory Blyth
6

--XAMARIN STUDIO--

A febrero de 2013, Monodevelop se llama Xamarin Studio, y el hecho de que tenga un espacio significa que lo anterior no funciona. Un poco más tarde, descubrí que necesitas anidar dos tipos de citas y lo siguiente funcionará en AppleScript:

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

Disfrutar

Glinkot
fuente
55
Funciona, solo necesitas escapar del espacio, por ejemploopen -n /Applications/Xamarin\ Studio.app
Luke
Un consejo más, también debes escapar de la barra invertida en el guión, comodo shell script "open -n /Applications/Xamarin\\ Studio.app/"
Mick Byrne
6

También puedes usar una versión más corta:

Open -n -a "Xamarin Studio.app"

Editar : para Visual Studio para Mac y / o más corto, el comando es

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

Si está de acuerdo con abrir dos soluciones en una instancia de Xamarin Studio, puede hacerlo navegando a "Archivo" -> "Soluciones recientes" y luego presionando Ctrl + clic en la otra solución. Esto abre ambas soluciones en la misma instancia del estudio Xamarin.

willem
fuente
1

Edite su ~ / .bashrc o ~ / .zshrc y configure el siguiente acceso directo:

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

Use lo siguiente de la CLI:

xam ReactiveUI.sln
Geoffrey Huntley
fuente
1

Una forma más fácil ...

Simplemente abra el terminal Arrastre la aplicación Xamarin Studio desde la aplicación, tomará el camino como /Applications/Xamarin\ Studio.appy escribirá el abierto -n antes de/Applications/Xamarin\ Studio.app

Ahora el comando completo es como open -n /Applications/Xamarin\ Studio.app

Pritish
fuente
0

Simplemente abra la escritura de Terminal o el comando a continuación, puede cambiar el número de nombre de instancia, por ejemplo (/ Xamarin \ Studio1), está abierto otro Xamarin Studio, por ejemplo (/ Xamarin \ Studio1)

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

Usando lo anterior, puede crear cualquiera de las instancias múltiples .app.

Patel Pankaj
fuente