Я также часто использую мультимониторы, поэтому я сделал простой обходной путь, пока 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)
Затем Гитв внутренне делает следующее:
- найти все экземпляры gvim, у которых открыт файл "a.txt". (В данном случае GVIM1)
- установите все эти буферы a.txt «только для чтения», «nomodifiable» и «autoread».
- Измененный буфер будет записан на диск перед установкой «только для чтения».)
- удалить файл подкачки.
- заново откройте a.txt на GVIM2. (gvim может открыть этот файл без проблем, потому что нет файла подкачки.)
Если вы хотите отредактировать a.txt на мониторе 1 вместо монитора 2, сделайте это для переключения активного буфера: $ gitv gvimr GVIM1 a.txt (или gvim1 a.txt) Это проще сделать в gvim1 с помощью ctrl + g + a.txt
(Это автоматически установит тот же буфер в других экземплярах gvim «только для чтения», чтобы предотвратить повреждение данных.)
gitv можно скачать здесь: http://code.google.com/p/gitv/
Он был протестирован только на Linux Linux gvim, но его можно легко перенести на MacVIM.