有人知道如何正确保存/重用Vim编辑器中记录的宏吗?
在~/.vimrc中编写宏,例如,要定义由Ctrl+O启动的宏,请将以下行添加到~/.vimrc中:
map <C-O> MACROTEXT
在通过键入qa来录制宏时,可以通过键入"ap来检索宏文本
qa
"ap
使用后跟字母(例如“ X ”)的q录制宏,然后按q结束宏定义。在此定义期间,由起始和结束'q'包围的码型仅进入其中一个复制/粘贴寄存器(本例中为寄存器“ X ”),因此您可以在正常模式下使用"xp或"xP命令进行粘贴,其中X是要粘贴的寄存器。在普通模式下输入"xp,将内容插入寄存器X,并返回普通模式。
q
'q'
"xp
"xP
要保存它,您可以打开.vimrc并粘贴内容,同时使用let @x来定义宏,然后下次启动Vim时,寄存器将会出现。 格式类似于:
let @x
let @q = 'macro contents'
不过,要小心引用。他们必须适当地逃脱。
因此,要将宏_ABC_保存为0,可以执行以下操作:
qx
let @x = '...'
...
:mkexrc(或:mkvimrc)命令可用于将所有当前:map和:set设置保存到一个文件中。有关详细信息,请参阅:help mkexrc。
:mkexrc
:mkvimrc
:map
:set
:help mkexrc
要获得更强大的解决方案,您可以签出马维姆。
它允许您将宏保存在特定的名称空间中(或使用文件类型作为默认名称空间),并且您可以稍后搜索保存的宏并将其加载到准备使用的寄存器中。
如果你重用了很多宏,这是非常有帮助的。
您可以在~/.vimrc上执行此操作
~/.vimrc
:let @a="iHello World!\<CR>bye\<Esc>"
注意:必须使用双引号才能使用特殊键,如在\<this silly example>中。
\<this silly example>
MacOS Mojave(10.14.6)上的Vim 8.0实际上会自动保持宏和命名缓冲区(默认情况下,尽管我还没有找到关闭此行为的方法)。关闭Vim会话将使用任何命名的缓冲区/宏更新~/.viminfo文件。
~/.viminfo