Cross-posting from Stackoverflow because I keep forgetting about this site...
Have a macro where a visually selected text will be made a markdown link and once the macro executes it leaves Vim in INSERT mode:
| - VISUAL selection
i - cursor position in INSERT mode
@l - invoke macro in "l" register
Some |text| saying stuff. = @l => Some [text]() saying stuff.
i
Register l
holds the following:
:registers l
Type Name Content
c "l S]%a()^Ohq<80>kb
Created it the following way:
- Visually select some text
q
thenl
S
then]
(S
is a visual selection command invim-surround
)^ - normal mode cursor position |text| =S]=> [text] ^
%
(jump to closing bracket)a
and then type()
- CTRL-O
h
- CTRL-O then
q
(to finish the macro but to remain in INSERT mode)
So I selected this definition with the mouse (i.e., *
register), and did let @l = "S]%a()^Ohq<80>kb"
in the other Vim instance, resulting in
Some |text| saying stuff. = @l => Some [text]()^Ohq<80>kb saying stuff.
i
It works if Vim is built with clipboard support (:let @+ = @l
in one Vim instance, and :let @l = @+
in another), but I would like to learn the fundamentals of deciphering these representations.
UPDATE: There is a slight difference between the Vim representations of the recorded & clipboard-copied macros and the ones that are pasted manually: the sequences ^O
and <80>
are highlighted as special in the former case, but the string is shown with uniform color in the latter.
The l
is the original recorded macro, +
is created by :let @+ = @l
, and c
content has been typed in verbatim:
Found a couple other Stackoverflow threads with a similar premise, but they weren't helpful:
VIM macro editing
Tried to convert the ^O
to <C-O>
but it didn't work, and have no clue what <80>kb
is.
Based on the creation steps above, I would have expected something like S]%a()^Oh^Oq
instead of S]%a()^Ohq<80>kb
anyway.
Reliable solution to copy/paste Vim macros
No replies, and based on what I understood, it is not applicable in my case.
Saving vim macros
Chewed my way through the answers and comments, but no joy.