将宏动作包装在函数中的好方法是什么?

时间:2012-06-12 20:41:36

标签: vim

  

可能重复:
  Saving vim macros

我总是在线上使用宏,它们是救命稻草。但是最近,我开始使用它们来做一些更复杂的文件操作,我想将它们记录到一个函数中,或者在Vim会话中以某种方式使用它们,这样我就不必每次都重新记录它们。我退出Vim的时间。

最简单的方法是什么?

2 个答案:

答案 0 :(得分:3)

Vim宏实际上只是保存在寄存器中的文本,并且由于寄存器是跨会话保存的 - 所以宏会自动保存。

然而,就我看来,宏背后的整个想法是你可以快速创建它们,使用它们然后丢弃它们。如果你想要更永久的东西,你应该付出努力并编写自定义命令或键盘映射 - 如果这是一个复杂的宏,你应该在适当的vimscript(或vim支持的任何其他脚本语言)中为它编写一个函数。

如果你要使用很多东西,你希望能够偶尔进行更改和修复 - 但这在宏中很难做到,因为它们是代表键击的文本字符串 - 而不是命令

答案 1 :(得分:2)

function! MyMacro()
   normal "paste your macro here
endfunction

但我同意Idan Arye的说法:用vimscript写的正确函数可能是一个更好的解决方案。