假设我想在vim中创建一个地图,它将调用ex命令作为其工作的一部分。并假设ex命令将寄存器名称作为输入。
这是一个玩具示例:
nmap <leader>p :put x
问题是总是会使用'x'寄存器。 但在打字时,我希望能够写下:
"a<leader>p
使用'a'寄存器,或:
"b<leader>p
使用'b'寄存器。
有没有办法可以将'当前正常模式寄存器'传递给'ex'命令?
答案 0 :(得分:6)
诀窍是在映射中使用<expr>
。
因此,对于我的例子,答案是:
nnoremap <expr> <leader>p ':put ' . v:register . '<CR>'
检查:h map-expression
和:h v:register
以获取更多信息。