4

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

这是一个玩具示例:

nmap <leader>p :put x

问题在于“x”寄存器将始终被使用。但是在打字时,我希望能够写:

"a<leader>p

要使用“a”寄存器,或者:

"b<leader>p

使用'b'寄存器。

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

4

1 回答 1

6

啊,我想通了。

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

所以,对于我的例子,答案是:

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

检查:h map-expression:h v:register了解更多信息。

于 2013-01-31T18:08:42.763 回答