Можно ли это сделать?
Концептуально решение должно применяться во множестве возможных конфигураций, начиная от двух экземпляров vim, работающих в отдельных виртуальных терминалах в панелях в окне tmux, до отдельных терминалов на отдельных машинах в отдельных географических регионах, один или оба подключенных по сравнению с сетью (другими словами, vims размещаются двумя отдельными процессами оболочки, которые в любом случае будут находиться под tmux).
Случай, который побудил меня обдумать это:
У меня есть две панели tmux с открытым vim, и я хочу использовать Vim yank/paste для копирования файлов.
Но он работает только в том случае, если я их обоих запускаю в том же экземпляре Vim, поэтому я вынужден либо:
- используйте функцию копирования/вставки tmux, чтобы получить содержимое (что несколько утомительно и сложно) или
- используйте функцию копирования/вставки терминала (PuTTY, iTerm2), чтобы получить содержимое (что тоже утомительно, но не подвержено сетевой латентности, однако это работает только до определенного размера текстовой полезной нагрузки для копирования, в этот момент это метод не будет работать вообще из-за того, что терминал не знает содержимое невидимых в данный момент частей файла) или
- потерять историю/контекст буфера Vim и, возможно, историю/контекст оболочки при повторном открытии файла вручную в одном из экземпляров Vim в разделенном буфере или вкладке, а затем закрытие другого терминального контекста (гораздо менее утомительно, чем 1 для больших полезных нагрузок, но тем более с небольшими полезными нагрузками).
Это немного PITA, и все можно избежать, если у меня есть предвидение переключиться на соответствующий терминал, уже запущенный vim, чтобы открыть мои файлы, но судьба рабочего процесса и привычки редко совпадают с тем, что было бы удобно,
Итак, возникает вопрос: существует ли какая-либо команда или возможность созданного straceforwardly (shell) script, который позволяет мне присоединяться к буферам через независимо исполняемые экземпляры vim? Мне трудно заставить Google ответить на это адекватно.
В отсутствие адекватного ответа (или если с достаточной уверенностью определено, что Vim не обладает функциями для выполнения переноса буферов по своим экземплярам), хорошая реализация (привязываемая к ключам) для подхода 3 выше приемлемым.
Тем временем я вернусь к настройке моей конфигурации vim дальше и заставляю себя использовать как можно меньше экземпляров vim.