Special registers

@ followed by a register symbol represents a register. In addition to the standard numbered registers @[0-9], there are several special registers.
  • :: command register
  • /: search register
  • %: filepath register
  • ": last yanked value register
  • +: system clipboard register
  • =: expression register
:reg for a complete list.

Modify register contents with <Ctrl-r>REGISTER

Note that since macros are just command sequences stored as a string in a register, you can edit macros this way as well.
:let @q='<Ctrl-r>q' # ...and then modify

Reuse contents of search register

Useful for when you search for something unwieldy to type and need to reuse it later (for a replace for example).
/some-long-and-complicated-search-string # search something arcane
:%s/<Ctrl-r>//replacement-string # reuse without retyping

Yank to system clipboard


Set system clipboard contents to current filepath

:let @+ = expand("%")

Run function on search results

Useful for transformations. The following will dashcase all capture group matches using abolish.vim.
g/\attribute :(\w\+\)/\=g:Abolish.dashcase(submatch(0))
Last modified 2yr ago