Я також часто використовую мультимонітори, тому я зробив просте вирішення для використання, поки vim не реалізує цю функцію. Використовуючи скрипт lua з назвою gitv, я можу відкрити файл у кількох екземплярах GVIM одночасно. В основному, коли є два екземпляри GVIM з назвою GVIM1 та GVIM2, я просто переконався, що одночасно редагується лише один файл, а всі інші - це глядачі. (Все робиться автоматично без підказки.)
Робочий процес: На даний момент gitv розроблений для сховищ git, тому його можна використовувати лише для тих файлів у сховищі git. Ви можете легко змінити цю поведінку за замовчуванням, змінивши функцію lsFiles ().
Щоб відкрити a.txt в GVIM1, використовуйте
$ gitv gvimr GVIM1 a.txt
Це відкриє вікно gvim, якщо його немає. Потім, щоб відкрити той же a.txt в іншому екземплярі GVIM2, використовуйте
$ gitv gvimr GVIM2 a.txt
(або ви можете зробити псевдонім на зразок $ gvim2 a.txt)
Тоді gitv внутрішньо виконує наступні дії:
- знайти всі екземпляри gvim, у яких відкрито "a.txt". (У цьому випадку GVIM1)
- встановіть усі ці буфери a.txt "лише для читання", "для зміни" та "для автоматичного читання".
- Змінений буфер записується на диск перед тим, як встановити "лише для читання".)
- видаліть файл swap.
- повторно відкрити a.txt на GVIM2. (gvim може відкрити цей файл без проблем, оскільки немає файлу своп.)
Якщо ви хочете відредагувати a.txt на моніторі 1 замість монітора 2, зробіть це для переключення активного буфера: $ gitv gvimr GVIM1 a.txt (або gvim1 a.txt) Це можна зробити простіше всередині gvim1 за допомогою ctrl + g + a.txt
(Це автоматично встановить цей самий буфер відкритим в інших випадках gvim "readonly", щоб запобігти пошкодженню даних.)
gitv можна завантажити тут: http://code.google.com/p/gitv/
Він був протестований лише на linux gvim, але його можна було легко перенести на MacVIM.