Jak mogę uruchomić wiele instancji MonoDevelop na komputerze Mac?

121

Chciałbym otworzyć nową instancję MonoDevelop, aby pracować nad innym projektem na komputerze Mac, a system operacyjny obecnie uniemożliwia mi otwarcie nowej instancji.

miguel.de.icaza
źródło

Odpowiedzi:

173

Na Macu, jeśli masz otwartą aplikację i spróbujesz ją uruchomić ponownie, komputer Mac po prostu przełączy się na otwartą aplikację. Możesz wymusić na nim otwarcie nowej instancji, przekazując opcję „-n” do programu uruchamiającego. W terminalu uruchom

open -n /Applications/MonoDevelop.app

Należy również zauważyć, że MonoDevelop jest w stanie otwierać wiele rozwiązań. Aby to zrobić, po prostu usuń zaznaczenie pola wyboru „zamknij bieżące rozwiązanie” w oknie dialogowym „Otwórz” lub przytrzymaj klawisz Ctrl, klikając jeden z ostatnio otwieranych projektów na stronie powitalnej.

EDYCJA: w przypadku Xamarin Studio, które zastąpiło MonoDevelop na komputerze Mac, polecenie to

open -n /Applications/Xamarin\ Studio.app

EDYCJA 2:

W przypadku programu Visual Studio dla komputerów Mac, który zastąpił Xamarin Studio, polecenie to

open -n /Applications/Visual\ Studio.app
Mikayla Hutchinson
źródło
2
Cześć - używam MonoDevelop 2.4 w systemie Mac OS i nie widzę tego pola wyboru ani tego zachowania klawisza kontrolnego. Czy to się ostatnio zmieniło?
David Moles
2
Nadal działa dla mnie. Zwróć uwagę, że pole wyboru i wskazówka na stronie powitalnej pojawiają się tylko wtedy, gdy masz już otwarte rozwiązanie, a pole wyboru pojawia się tylko wtedy, gdy faktycznie wybierzesz rozwiązanie lub projekt w oknie dialogowym.
Mikayla Hutchinson
Zaktualizuj do etykiety pola wyboru na wypadek, gdyby ktoś ją znalazł, teraz mówi „Zamknij bieżący obszar roboczy”
Tiago
FYI - jeśli korzystasz z tej metody, wszystkie dodatkowe rozwiązania są otwierane w tym samym oknie monoprogramowania ... to wcale nie jest to, czego oczekiwałem od używania VS / MD w systemie Windows. Najwyraźniej musimy skorzystać z poniższych metod, aby uzyskać oddzielne okna dla oddzielnych rozwiązań ..
David Jeske
2
Nadal działa w Xamarin Studio, choć wciąż podejrzewam, że Miguel rzucił softball:; open -n /Applications/Xamarin\ Studio.app/ ^)
ruffin
40

Użycie powłoki do wprowadzenia polecenia, jak opisali inni, w celu uruchomienia dodatkowej instancji, jest w porządku, ale wolę mieć ikonę na stacji dokującej, którą mogę po prostu kliknąć.

To proste:

  1. Otwórz edytor AppleScript i wprowadź następujące informacje:

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

  2. Zapisz pod nazwą taką jak „MonoDevelop Launcher” i upewnij się, że jako format pliku określono aplikację .

  3. Przeciągnij ikonę do stacji dokującej.

  4. Koniecznie sprawdź poniższy komentarz Brighta na temat zamiany ogólnej ikony na MonoDevelop.

Klikaj wielokrotnie, aby cieszyć się wspaniałością wielu instancji MonoDevelop.

Subfuzion
źródło
1
Najlepsze z dwóch pozostałych odpowiedzi łącznie
BlackTigerX
10
Aby zastąpić ikonę uruchamiania skryptu ikoną MonoDevelop, możesz otworzyć zawartość pakietu i zastąpić plik applet.icns ikoną monodevelop (z zawartości pakietu MonoDevelop). Pamiętaj tylko, aby zmienić nazwę pliku na applet.icns po skopiowaniu go .
jasne
1
Idealny! Dzięki Subfuzion i dzięki jasnej końcówce do wymiany ikon.
Leigh Bowers
Dobra wskazówka od Brighta na temat zmiany ikony. Zobacz również odpowiedź Glinkota poniżej i komentarz Łukasza dotyczący obsługi przestrzeni w Xamarin Studio, który zastępuje MonoDevelop.
Subfuzion
13

Dla wygody po prostu tworzę trzy kopie MonoDevelop.

Podświetl MonoDevelop w Finderze, kopiuj, wklej, zmień nazwę nowej kopii na „MonoDevelop-2” i powtórz z satysfakcją.

Pomaga mi też śledzić, co się dzieje w różnych sytuacjach. Zwykle trzymam swój najważniejszy projekt otwarty w „MonoDevelop”, używam „MonoDevelop-2” do testowania pomysłów związanych z moim głównym projektem i „MonoDevelop-3” do losowego zadrapania.

Kiedy używasz alt-tab (open-Apple-tab (command-tab (whvr))), nazwa pliku wykonywalnego pojawia się pod jego ikoną na liście aplikacji, więc dopóki trzymam się swojej konwencji, zawsze wiem (ish) zawartość instancji, do której przechodzę, niezależnie od tego, ile innych okien aplikacji mam otwartych. Nie muszę ich przeglądać, żeby to rozgryźć.

Nie jest idealnie - gdy mam uruchomiony „MonoDevelop”, jeśli spróbuję odpalić któryś z pozostałych, pierwsza próba uruchomienia się nie powiedzie. Po prostu spróbuj go ponownie uruchomić - działa za drugim razem. Dzieje się to jednak dopiero od ostatniej kompilacji i myślę, że może to mieć coś wspólnego z automatycznymi aktualizacjami lub zarządzaniem dodatkami. Nie zaglądałem temu zbytnio. Ponieważ po uruchomieniu nie ma żadnych problemów, nie martwię się tym :)

W rezultacie, stosując metodę start-it-two, dla każdej dodatkowej instancji MonoDevelop, którą chcesz uruchomić, musisz czterokrotnie kliknąć zamiast dwukrotnego kliknięcia. Dodaje około piętnastu sekund do procesu, a ponieważ mam MonoDevelop (razem z "MonoDevelop-1" i "MonoDevelop-2") działające przez cały czas, to może dać dodatkowe trzydzieści sekund pracy tygodniowo. Wydaje mi się, że uczciwy handel dla wygody.

Trochę hacky, ale dobrze mi się udało.

I wszystkie fajne dzieciaki to robią.

Rory Blyth
źródło
1
Świetny pomysł! Czy to nadal działa, jeśli zamiast kopiowania utworzysz łącze symboliczne?
Mikayla Hutchinson
1
Niepowodzenia uruchamiania to znany błąd w ponownym skanowaniu rejestru dodatków. Gdy MD wykryje, że jego biblioteki dll uległy zmianie lub zostały „przeniesione”, odbudowuje rejestr dodatków i czasami po tym ulega awarii. Istnieje zmienna środowiskowa, którą możesz ustawić, aby używała innej lokalizacji rejestru, której możesz użyć do oddzielenia rejestrów trzech instancji, chociaż nie jestem pewien, jak ustawić zmienne środowiskowe dla aplikacji na komputerze Mac. Może trzeba będzie załatać go do skryptu MonoDevelop.app/Contents/macOS/MonoDevelop.
Mikayla Hutchinson
Nie próbowałem niczego innego niż tylko kopiowanie, chociaż twój pomysł ma o wiele więcej sensu - nie musiałbym dublować wysiłku przy pobieraniu najnowszych kompilacji MonoDevelop. Kiedy robię takie rzeczy (tworzę brudne rozwiązania dla siebie), mam tendencję do wybierania najbardziej leniwej drogi, aby zaspokoić moje pożądliwe sposoby. Ale teraz chcę wiedzieć. Oczywiście mogłem to zrobić w znacznie krótszym czasie, niż zajęło mi napisanie tego komentarza ... To jest sprzeczne z celem mojego lenistwa. Muszę iść. Muszę iść i spróbować ...
Rory Blyth
Nie wiem, dlaczego tak długo czekałem z odpowiedzią - próbowałem utworzyć link symboliczny, gdy tylko napisałem powyższy komentarz - nie działa: | OS X nie dał się nabrać. Więc nadal robię swoje kopiowanie. Ale hej - to działa. Pomyślałem o kilku sposobach zautomatyzowania tego i przekazania bardziej znaczących informacji niż tylko -2, -3 itd. W nazwie pliku do przechodzenia z tabulatorami poleceń przez aplikacje, ale nie osiągnąłem jeszcze progu Potrzeba> Lenistwo, który podpowiada ja zbudować moje narzędzia :)
Rory Blyth
6

--XAMARIN STUDIO--

Od lutego 2013 Monodevelop nosi nazwę Xamarin Studio, a fakt, że ma w nim miejsce, oznacza, że ​​powyższe nie działa. Trochę później, odkryłem, że musisz zagnieździć dwa rodzaje cudzysłowów, a poniższe będzie działać w skryptach jabłkowych:

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

Cieszyć się

Glinkot
źródło
5
To działa, wystarczy uciec z kosmosu, np.open -n /Applications/Xamarin\ Studio.app
Luke
Jeszcze jedna wskazówka, musisz również uciec od ukośnika odwrotnego w skrypcie, na przykładdo shell script "open -n /Applications/Xamarin\\ Studio.app/"
Mick Byrne
6

Możesz także użyć krótszej wersji:

Open -n -a "Xamarin Studio.app"

Edycja : w przypadku programu Visual Studio dla komputerów Mac i / lub krótszego polecenia jest

Open -n -a "Visual Studio"
Denis Gordin
źródło
3

Jeśli nie przeszkadza Ci otwieranie dwóch rozwiązań w jednym wystąpieniu Xamarin Studio, możesz to zrobić, przechodząc do opcji „Plik” -> „Najnowsze rozwiązania”, a następnie naciskając klawisz Ctrl i klikając drugie rozwiązanie. Spowoduje to otwarcie obu rozwiązań w tym samym wystąpieniu Xamarin Studio.

willem
źródło
1

Edytuj plik ~ / .bashrc lub ~ / .zshrc i skonfiguruj następujący skrót:

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

Użyj w następujący sposób z CLI:

xam ReactiveUI.sln
Geoffrey Huntley
źródło
1

Jeszcze jeden najłatwiejszy sposób ....

Po prostu otwórz terminal Przeciągnij aplikację Xamarin Studio z aplikacji, która weźmie ścieżkę taką jak /Applications/Xamarin\ Studio.appi napisz open -n przed plikiem/Applications/Xamarin\ Studio.app

Teraz pełne polecenie jest jak open -n /Applications/Xamarin\ Studio.app

Pritish
źródło
0

Po prostu otwórz polecenie Zapisz lub poniżej terminalu, możesz zmienić numer nazwy wystąpienia, np. (/ Xamarin \ Studio1), otwórz inny Xamarin Studio, np. (/ Xamarin \ Studio1)

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

Korzystając z powyższego, możesz utworzyć dowolną z wielu instancji .app.

Patel Pankaj
źródło