13

Sometimes I create macros. Sometimes I create the the same macro. Sometimes I feel sick of creating the same macro. Can I store macros? Can I load a preset of macros? Can I make a macro and save it forever?

15

Yes, you can! There are a couple ways to do this. By default, all registers will be saved into your viminfo file, and loaded once you start vim. This is the easiest way. However, it's not foolproof. Each register will be lost if you accidentally record/yank over it.

The better way to save a specific macro is to put it in your .vimrc. For example, let's say you want foo to be saved into macro a. This could be achieved with:

let @a='foo'

in your vimrc. If you have your macros already made, you could type

ilet @a='<C-r><C-r>a'<esc>

to paste the current contents of the macro, if you don't feel like typing it all out again.


Thanks to Andrew Keeton for pointing out <C-r><C-r>

  • You'll probably want to use <C-r><C-r> (two, instead of one) to insert the text literally – Andrew Keeton Mar 20 at 16:51
  • 1
    @AndrewKeeton Ooh, great improvement. Thanks for letting me know about that – DJMcMayhem Apr 12 at 16:38
  • <c-r><c-r> won't work if your macro contains special key sequence such as <c-right>, "ap don't have this problem. – dedowsdi Nov 7 at 6:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.