我在一个屏幕窗口中录制了一个 vim 宏。 在同一屏幕会话中,我有多个窗口。
如何制作我在第一个屏幕窗口中录制的宏跨其他屏幕窗口/跨屏幕会话?
为此我们需要对 vim 寄存器做一些事情吗?
如果两个屏幕窗口显示同一台机器上的两个单独的 Vim 实例
如果 Vim 内置有剪贴板支持
在您录制该宏的 Vim 实例中,将宏寄存器的内容放入剪贴板寄存器中:
" assuming you recorded your macro in register `a`
:let @+ = @a
在另一个 Vim 实例中,将剪贴板寄存器的内容放入命名的命名寄存器中:
:let @a = @+
如果 Vim 没有内置剪贴板支持
Vim 将寄存器存储在
.viminfo
文件中。理论上,您可以写入和读取任意 .viminfo
文件,但这可能会导致 Vim 中不必要的状态丢失。仔细阅读:help viminfo-read-write
非常并谨慎行事。