Використання Vim / Gvim з кількома вікнами графічного інтерфейсу


25

Чи можливо мати 2 або більше вікон (G) для одного сеансу або хоча б поділитися деякими буферами. Тут "вікно" посилається на вікно Gnome (або KDE, або Windows тощо), а не вікно VIM.

Я використовую два монітори з xinerama і хочу відкрити два окремих вікна графічного інтерфейсу, а не мати величезний один, який охоплює кілька екранів.


ви пробували: sp <ім'я файла> або: vsp <ім'я файла>? Це команди розділення вікон vim, і вони чудові. Ось деяка документація
Том Стівенс

2
@Tom Stephens: і це допомагає .. як? ОП хоче розмістити vim-windows одного екземпляра vim на своїх моніторах. ОП не хоче, щоб ONE екземпляр vim охоплювався на всіх моніторах.
акіра

1
Це важливо; редактор насправді не повинен робити це власне управління вікнами.
Сем Уоткінс

Відповіді:


19

Наразі gVim не може мати окремі вікна 'верхнього рівня' для одного процесу / сеансу. Існує пункт TODO для реалізації системи міжпроцесорного зв’язку між декількома екземплярами Vim, щоб змусити його вести себе так, ніби окремі процеси уніфіковані. (Дивіться :help todoта шукайте "верхнього рівня".)


Через 7 років, Vim8, це все ще в списку тодо.
Ал.Г.

1
Пожертвуйте на благодійність Vim і отримайте голоси, а потім проголосуйте за функцію: vim.org/sponsor/index.php
Геппіт

3

Погляньте на екран GNU, який використовується спільно з Vim.

Перше вікно, запустіть gnu screen і vim

xterm
screen -S edit
vim

Друге вікно, підключення до екранного сеансу:

xterm
screen -x edit

Неймовірно корисний на великих робочих столах xinerama, декількох віртуальних екранах або сесіях VNC. Один сеанс Vim з великою кількістю вкладок - це все, що вам потрібно.

- Том


1
Бали для швидкого та короткого підручника, хоча я б назвав це лише трохи корисним, оскільки я не можу редагувати різні буфери одного і того ж сеансу таким чином.
Атілла Філіз

що цікаво, це пункт, коли екран перемагає tmux, - в tmux, який приєднується до одного і того ж сеансу від іншого клієнта, ви знаєте, ви просто бачите речі, відображені в обох випадках ... Я розглядаю деяку нечесну комбінацію двох, але не зовсім з'ясував, що я ще хочу зробити!
JonnyRaa

2

Минув час, коли ви задали своє запитання, і багато речей покращилися. Nvidia має набагато кращу підтримку драйверів для декількох моніторів в Linux.
Зараз я перестав використовувати Gvim з моменту переходу на KDE: Зараз я використовую vim-qt. Це дозволяє відкривати кілька примірників, якщо ви не хочете використовувати vim в терміналі.

редагувати: Моя установка


Я зараз пробую це, як я можу використовувати ці кілька екземплярів? Це схоже на звичайний гвім із трохи іншим обличчям до мене.
Атілла Філіз

Ви можете просто запустити два екземпляри vim-qt, щоб у вас було одне вікно для кожного з ваших екранів і вкладка alt-вкладки між ними, або призначили гарячі клавіші кожному вікну. Vim-qt написано для qt, тому середовище робочого столу на основі qt, наприклад KDE, може краще використовувати Windows. Це означає, що у вас відкрито кілька різних графічних вікон, і що ваші графічні вікна можуть бути повноекранні. Що було неможливо звичайним гвімом.
jollyroger

6
Дякую, що знайшли час, але це не те, що я хотів. Я хотів отримати доступ до тих самих буферів з двох окремих вікон GUI. І це неможливо, оскільки обмін буфером все ще знаходиться у списку справ vim (див. Прийняту відповідь).
Атілла Філіз

1

Ви можете мати стільки сеансів vi (m), скільки хочете, використовуючи окремі термінальні вікна для кожного.

Що стосується того, що вони не перетинаються, я припускаю, що ви розміщуєте їх на весь екран, а потім він розширюється на обох моніторах, оскільки він встановлений для розширення робочого столу. Не збільшуйте його і вручну регулюйте розмір вікна або терміналу.

Якщо я пропустив позначку, будь ласка, спробуйте детальніше розібратися.

Що ви маєте на увазі під вікмом vim?

редагувати: Ось знімок мого екрана із запущеними 4 екземплярами vim

Сподіваюсь, Геппіт вдарив його, бо я з цим певним чином загубився.


1
Це саме те, що я зараз роблю, вручну змініть їх розмір, щоб охопити два монітори, а потім: vsplit, але це виглядає некрасиво, а іноді мені хочеться побачити деякі буфери на різних віртуальних робочих столах або прикрити один монітор чимось іншим. Те, що я хочу, - це використовувати два термінали diffnet і досі доступ до одних і тих самих буферів.
Атілла Філіз

Я тепер розумію. Радий бачити, що Гептит відповів на це за вас.
Дан М.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.