Używanie Vim / Gvim z wieloma oknami GUI

25

Czy możliwe jest posiadanie 2 lub więcej okien (V) vim dla tej samej sesji lub przynajmniej współdzielenie niektórych buforów. Tutaj „okno” odnosi się do okna Gnome (lub KDE, Windows itp.), A nie okna VIM.

Używam dwóch monitorów z Xineramą i chcę otworzyć dwa osobne okna GUI zamiast jednego dużego, który obejmuje wiele ekranów.

Atilla Filiz
źródło
próbowałeś: sp <nazwa pliku> lub: vsp <nazwa pliku>? To są polecenia dzielenia okna vima i są świetne. Oto dokumentacja
Tom Stephens
2
@Tom Stephens: a to pomaga .. jak? OP chce ustawić okna vim JEDNEJ instancji vim na swoich monitorach. OP nie chce, aby JEDNĄ instancję vim rozłożono na wszystkie monitory.
akira
1
To jest ważne; edytor nie powinien tak naprawdę zarządzać własnym oknem.
Sam Watkins,

Odpowiedzi:

19

Obecnie gVim nie może mieć osobnych okien „najwyższego poziomu” dla tego samego procesu / sesji. Istnieje element DO ZROBIENIA do implementacji systemu komunikacji między procesami między wieloma instancjami Vima, aby działał tak, jakby oddzielne procesy były zunifikowane. (Zobacz :help todoi wyszukaj „najwyższy poziom”).

Heptyt
źródło
7 lat później, Vim8, wciąż znajduje się na liście rzeczy do zrobienia.
Al.G.
1
Przekaż darowiznę na cele charytatywne Vima i zdobądź głosy, a następnie głosuj na funkcję: vim.org/sponsor/index.php
Heptite
3

Spójrz na ekran GNU używany w połączeniu z Vimem.

Pierwsze okno, uruchom ekran GNU i vim

xterm
screen -S edit
vim

Drugie okno, połącz z sesją ekranową:

xterm
screen -x edit

Niezwykle przydatne na dużych komputerach xinerama, wielu ekranach wirtualnych lub sesjach VNC. Wystarczy jedna sesja Vima z dużą ilością zakładek.

-- Tomek

Tomek
źródło
1
Punkty za szybki i krótki samouczek, chociaż nazwałbym to tylko trochę przydatnym, ponieważ nie mogę w ten sposób edytować różnych buforów tej samej sesji.
Atilla Filiz,
co ciekawe, jest to punkt, w którym ekran wygrywa z tmux, - w tmux dołączenie do tej samej sesji od innego klienta oznacza, że ​​widzisz rzeczy odzwierciedlone w obu instancjach ... Rozważam jakieś niecne połączenie tych dwóch, ale nie całkiem wymyśliłem, co chcę jeszcze zrobić!
JonnyRaa
2

Minęło trochę czasu, odkąd zadałeś pytanie i wiele rzeczy uległo poprawie. Nvidia ma znacznie lepszą obsługę sterowników dla wielu monitorów w systemie Linux.
Teraz przestałem używać Gvima, odkąd przeniosłem się do KDE: Teraz używam vim-qt. Umożliwia otwieranie wielu instancji, na wypadek, gdybyś nie chciał używać vima w terminalu.

edytować: Moja konfiguracja

Jolly Roger
źródło
Próbuję teraz, jak korzystać z tych wielu instancji? Wygląda jak zwykły gvim z nieco inną twarzą niż ja.
Atilla Filiz
Możesz po prostu uruchomić dwa wystąpienia vim-qt, dzięki czemu możesz mieć jedno okno dla każdego ekranu i między nimi Alt-Tab lub przypisać skróty do każdego okna. Vim-qt jest napisany dla qt, więc środowiska graficzne oparte na qt, takie jak KDE, mogą lepiej wykorzystywać okna. Oznacza to, że możesz mieć kilka różnych otwartych okien graficznych i że okna graficznego vima mogą być pełnoekranowe. Co nie było możliwe przy zwykłym gvimie.
Jollyroger
6
Dzięki za poświęcenie czasu, ale nie tego chciałem. Chciałem uzyskać dostęp do tych samych buforów z dwóch oddzielnych okien GUI. I nie jest to możliwe, ponieważ współdzielenie bufora wciąż znajduje się na liście rzeczy do zrobienia vim (patrz zaakceptowana odpowiedź).
Atilla Filiz
1

Możesz mieć tyle sesji vi (m), ile chcesz, używając osobnych okien terminali dla każdej.

Jeśli chodzi o to, aby nie rozciągały się na siebie, zakładam, że ustawiasz je na pełny ekran, a następnie rozszerza się na oba monitory, ponieważ jest ustawiony na rozszerzenie pulpitu. Nie maksymalizuj go i ręcznie dostosuj rozmiar okna terminala lub gvim.

Jeśli przegapiłem znak, spróbuj rozwinąć nieco więcej.

Co rozumiesz przez okno vima?

edytować: Oto zdjęcie mojego ekranu z uruchomionymi 4 instancjami vim

Mam nadzieję, że trafił w nią Heptyt, ponieważ trochę się w tym zagubiłem.

Dan M.
źródło
1
Właśnie to robię teraz, ręcznie zmień ich rozmiar, tak aby obejmował dwa monitory, a następnie: vsplit, ale wygląda brzydko, a czasami chcę zobaczyć bufory na różnych wirtualnych pulpitach lub zakryć jeden monitor czymś innym. Chcę użyć dwóch różnych terminali i nadal uzyskiwać dostęp do tych samych buforów z obu z nich.
Atilla Filiz
Teraz rozumiem. Cieszę się, że heptyt odpowiedział na to za ciebie.
Dan M.