Vim - 使用可选的寄存器前缀进行映射

Ric*_*ard 3 vim

所以我发现在Vim中我的一个常见任务是将PUT连接到行的开头或行的结尾.所以我的映射可能是:

nmap <Leader>p $p
nmap <Leader>P 0P
Run Code Online (Sandbox Code Playgroud)

但是,我真正想做的是在推杆之前选择包含一个注册表.

因此,例如"a,P将从寄存器a放到行的开头.

有没有办法用映射做到这一点?

ZyX*_*ZyX 5

您可以使用<expr>一行中的映射来执行此操作:

nnoremap <expr> \p '$"'.v:register.v:count1.'p'
nnoremap <expr> \P '0"'.v:register.v:count1.'P'
Run Code Online (Sandbox Code Playgroud)