Vim 将映射中的寄存器名传递到ex命令

Vim 将映射中的寄存器名传递到ex命令,vim,Vim,假设我想在vim中创建一个映射,作为其工作的一部分调用一个ex命令。假设ex命令以寄存器名作为输入 以下是一个玩具示例: nmap <leader>p :put x nmap:put x 存在的问题是,始终使用“x”寄存器。 但在打字时,我希望能够写: "a<leader>p “ap 要使用“a”寄存器,或: "b<leader>p “bp 使用“b”寄存器 有没有办法将“当前正常模式寄存器”传递给“ex”命令?啊,我想出来了 诀窍是在映射中使用

假设我想在vim中创建一个映射,作为其工作的一部分调用一个ex命令。假设ex命令以寄存器名作为输入

以下是一个玩具示例:

nmap <leader>p :put x
nmap:put x
存在的问题是,始终使用“x”寄存器。 但在打字时,我希望能够写:

"a<leader>p
“ap
要使用“a”寄存器,或:

"b<leader>p
“bp
使用“b”寄存器

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

啊,我想出来了

诀窍是在映射中使用

以我为例,答案是:

nnoremap <expr> <leader>p ':put ' . v:register . '<CR>'
nnoremap p':put。v:登记
有关详细信息,请检查
:h映射表达式
:h v:register