Vim über mehrere Monitore

9

Hat jemand eine elegante Lösung, um MacVim oder GVIM auf mehrere Monitore (möglicherweise mit unterschiedlicher Auflösung) zu übertragen? 2 Sitzungen funktionieren aufgrund separater Puffer und Auslagerungsdateien nicht gut.

Sie würden denken, Sie könnten 2 GUI-Fenster haben, die die gleichen Puffer teilen, aber ich kann nichts finden, das funktioniert.

Patm
quelle
1
Ich würde auch gerne die Antwort darauf wissen. Ich habe diese vimdoc.sourceforge.net/htmldoc/remote.html gefunden, die die richtige Richtung zu sein scheint. Aber ich habe es noch nicht ausprobiert.
Amjith

Antworten:

1

Erweitern Sie das gvimFenster, um beide Bildschirme abzudecken, und CTRL-W vteilen Sie das Bearbeitungsfenster vertikal.

Siehe :help CTRL-Wfür mehr Fenster Befehle.

MikeyB
quelle
1
Mir ist klar, dass ich Fenster spalte. Dies funktioniert leider nicht gut mit unterschiedlichen Monitorauflösungen. Es scheint wirklich keinen guten Weg zu geben, dies zu tun.
Patm
1

Ich verwende auch häufig Multi-Monitore, daher habe ich eine einfache Problemumgehung vorgenommen, bis vim diese Funktion implementiert. Mit einem Lua-Skript namens gitv kann ich eine Datei auf mehreren Instanzen von GVIM gleichzeitig öffnen. Wenn es zwei Instanzen von GVIM mit den Namen GVIM1 und GVIM2 gibt, habe ich lediglich sichergestellt, dass nur eine Datei gleichzeitig bearbeitet werden kann und alle anderen Viewer sind. (Alles wird automatisch ohne Aufforderung erledigt.)

Workflow: Derzeit ist gitv für Git-Repositorys konzipiert, sodass es nur für diese Dateien in einem Git-Repository verwendet werden kann. Sie können dieses Standardverhalten einfach ändern, indem Sie die Funktion lsFiles () ändern.

Verwenden Sie zum ersten Öffnen von a.txt in GVIM1

$ gitv gvimr GVIM1 a.txt

Dies öffnet ein gvim-Fenster, wenn es keines gibt. Verwenden Sie dann, um dieselbe a.txt auf einer anderen Instanz GVIM2 zu öffnen

$ gitv gvimr GVIM2 a.txt (oder Sie können einen Alias ​​wie $ gvim2 a.txt erstellen)

Dann führt gitv intern Folgendes aus:

  1. Finde alle Instanzen von gvim, bei denen "a.txt" geöffnet ist. (In diesem Fall GVIM1)
  2. Setzen Sie alle a.txt-Puffer auf "schreibgeschützt", "nomodifizierbar" und "autoread".
  3. Der Puffer, der geändert wurde, wird auf die Festplatte geschrieben, bevor "schreibgeschützt" gesetzt wird.)
  4. Entfernen Sie die Auslagerungsdatei.
  5. Öffnen Sie a.txt auf GVIM2 erneut. (gvim kann diese Datei problemlos öffnen, da keine Auslagerungsdatei vorhanden ist.)

Wenn Sie a.txt auf Monitor 1 anstelle von Monitor 2 bearbeiten möchten, wechseln Sie dazu den aktiven Puffer: $ gitv gvimr GVIM1 a.txt (oder gvim1 a.txt) Dies kann in gvim1 einfacher mit Strg + g erfolgen + a.txt

(Dadurch wird automatisch derselbe Puffer in anderen Instanzen von gvim "schreibgeschützt" geöffnet, um eine Beschädigung der Daten zu verhindern.)

gitv kann hier heruntergeladen werden: http://code.google.com/p/gitv/ Es wurde nur unter Linux gvim getestet, konnte aber problemlos auf MacVIM portiert werden.

tbear
quelle