在映射到ex命令时传递寄存器名称

时间:2013-01-31 17:55:35

标签: vim

假设我想在vim中创建一个地图,它将调用ex命令作为其工作的一部分。并假设ex命令将寄存器名称作为输入。

这是一个玩具示例:

nmap <leader>p :put x

问题是总是会使用'x'寄存器。 但在打字时,我希望能够写下:

"a<leader>p

使用'a'寄存器,或:

"b<leader>p

使用'b'寄存器。

有没有办法可以将'当前正常模式寄存器'传递给'ex'命令?

1 个答案:

答案 0 :(得分:6)

啊,我想通了。

诀窍是在映射中使用<expr>

因此,对于我的例子,答案是:

nnoremap <expr> <leader>p ':put ' . v:register . '<CR>'

检查:h map-expression:h v:register以获取更多信息。