Vim na wielu monitorach

9

Czy ktoś ma eleganckie rozwiązanie dla MacVima lub gvima na wielu monitorach (potencjalnie o różnej rozdzielczości)? Posiadanie 2 sesji nie działa dobrze z powodu oddzielnych buforów i plików wymiany.

Można by pomyśleć, że 2 okna GUI mogą mieć te same bufory, ale nie mogę znaleźć niczego, co działa.

Patm
źródło
1
Chciałbym również znać odpowiedź na to pytanie. Znalazłem ten vimdoc.sourceforge.net/htmldoc/remote.html, który wydaje się właściwym kierunkiem. Ale jeszcze tego nie wypróbowałem.
Amjith,

Odpowiedzi:

1

Rozwiń gvimokno, aby objąć oba ekrany i użyj, CTRL-W vaby podzielić okno edycji w pionie.

Zobacz :help CTRL-Wwięcej poleceń okna.

MikeyB
źródło
1
Jestem świadomy podziału okien. Niestety nie działa to dobrze przy różnych rozdzielczościach monitora. Wygląda na to, że naprawdę nie ma dobrego sposobu na zrobienie tego.
Patm
1

Często też używam wielu monitorów, więc zrobiłem proste obejście, dopóki vim nie zaimplementuje tej funkcji. Używając skryptu lua o nazwie gitv, mogę otworzyć plik na wielu instancjach GVIM jednocześnie. Zasadniczo, gdy istnieją dwa wystąpienia GVIM o nazwie GVIM1 i GVIM2, to po prostu upewniłem się, że tylko jeden plik jest edytowalny jednocześnie, a wszystkie pozostałe są przeglądarkami. (Wszystko odbywa się automatycznie bez monitowania.)

Przepływ pracy: Obecnie gitv jest przeznaczony dla repozytoriów git, więc można go używać tylko do tych plików w repozytorium git. Możesz łatwo zmienić to domyślne zachowanie, modyfikując funkcję lsFiles ().

Aby najpierw otworzyć a.txt na GVIM1, użyj

$ gitv gvimr GVIM1 a.txt

Otworzy się okno gvim, jeśli go nie ma. Następnie, aby otworzyć ten sam plik a.txt w innej instancji GVIM2, użyj

$ gitv gvimr GVIM2 a.txt (lub możesz utworzyć alias taki jak $ gvim2 a.txt)

Następnie gitv wewnętrznie wykonuje następujące czynności:

  1. znajdź wszystkie wystąpienia gvim, które mają otwarte „a.txt”. (W tym przypadku GVIM1)
  2. ustaw wszystkie bufory a.txt na „tylko do odczytu”, „nomodifiable” i „autoread”.
  3. Zmodyfikowany bufor zostanie zapisany na dysku przed ustawieniem „tylko do odczytu”).
  4. usuń plik wymiany.
  5. ponownie otwórz a.txt na GVIM2. (gvim może otworzyć ten plik bez problemu, ponieważ nie ma pliku wymiany).

Jeśli chcesz edytować plik a.txt na monitorze 1 zamiast monitora 2, zrób to, aby przełączyć aktywny bufor: $ gitv gvimr GVIM1 a.txt (lub gvim1 a.txt) Można to zrobić łatwiej w gvim1 za pomocą ctrl + g + a.txt

(Spowoduje to automatyczne ustawienie tego samego bufora jako otwartego w innych przypadkach gvim „tylko do odczytu”, aby zapobiec uszkodzeniu danych).

gitv można pobrać tutaj: http://code.google.com/p/gitv/ Został przetestowany tylko na Linuksie gvim, ale można go łatwo przenieść na MacVIM.

tbear
źródło