Wie konfiguriere ich MacVim so, dass es beim Beenden beendet wird?

7

Wenn ich MacVim mit dem Standardbefehl vim schließe :q, wird das MacVim-Fenster geschlossen, aber das Programm wird noch ausgeführt. Dies führt zu Problemen, wenn andere Prozesse versuchen, eine Instanz von MacVim zu erzeugen. Wenn diese noch ausgeführt wird, muss ein spezielles Flag an MacVim übergeben werden, damit eine neue Instanz geöffnet wird. Dann sammeln sich die Instanzen an.

Gibt es eine Möglichkeit, Vimscript zu verwenden, um den Prozess abzubrechen und das Fenster beim Beenden zu schließen?

Tlehman
quelle

Antworten:

18

Wenn Sie immer mehrere MacVim- Symbole in Ihrem Dock haben , sollten Sie untersuchen, wie Sie MacVim starten . Insbesondere :help macvim-startsagt

Rufen Sie NICHT die MacVim-Binärdatei im App-Bundle auf, um MacVim zu starten.

In der Befehlszeile verwenden Sie normalerweise entweder open -a MacVim filenameoder mvim filename1 . Über die GUI können Sie MacVim bestimmten Erweiterungen zuordnen , Dateien per Drag & Drop auf MacVim im Finder oder im Dock oder in ein geöffnetes MacVim- Fenster ziehen oder über das Menü Dienste neue Puffer mit einer Auswahl aus anderen Anwendungen starten. Es gibt auch den mvim://URL-Handler (siehe :help mvim://).

Keine dieser Methoden erfordert spezielle Flags / Optionen, unabhängig davon, ob eine vorhandene Instanz ausgeführt wird oder nicht, und sollte jemals ein zusätzliches MacVim- Symbol im Dock erstellen .

1 mvim ist ein Skript, das mit MacVim geliefert wird . siehe :help mvim. Sobald Sie es in einem Verzeichnis in Ihrem PATH installiert haben, können Sie damit Dateien in einer vorhandenen MacVim- Instanz bearbeiten (oder eine starten, wenn sie noch nicht ausgeführt wurde).


Die Option "Nach dem letzten Schließen des Fensters": Beenden Sie die Option " MacVim beenden" auf der Registerkarte " Allgemein" der MacVim - Einstellungen (⌘ oder MacVim > Einstellungen ... ).

Wenn Sie wirklich etwas Spezifischeres benötigen, können Sie mit dem Befehl MacVim -custom :macaction terminate:die gesamte MacVim- Anwendung auffordern, das Skript jederzeit zu beenden . Es sollte ⌘Q und dem Menüpunkt MacVim > MacVim beenden entsprechen (alle senden die terminate:Aktion an den Ersthelfer der Anwendung). Wenn Sie Puffer geändert haben, werden Sie gefragt, ob Sie trotzdem beenden möchten.

Es hört sich so an, als ob Sie es über einen automatischen Befehl mit dem VimLeave-Ereignis verbinden möchten:

autocmd VimLeave * macaction terminate:
Chris Johnsen
quelle
Ah, endlich verschwindet mein Vim Dock Symbol, sobald ich alle Puffer geschlossen habe :)
Andre
0

Das MacVim-Bundle von macvim-dev verfügt anscheinend nicht über das mvim-Skript. Ich habe das mvim-Skript von b4winckler repo genommen und es funktioniert wie oben beschrieben.

Ein Schinken
quelle