Vim -如何使您自己的映射可重复



我的vimrc中有以下映射:

nmap <Leader>h1 yyp<c-v>$r=
nmap <Leader>h2 yyp<c-v>$r-

我想用.重复<Leader>h1/2

存在重复。vim插件由Tim Pope提供,使用行

silent! call repeat#set("<Plug>MyWonderFulMap", v:count)

我试着用下面的方法使用它:

nnoremap <silent> <Plug>MyWonderfulMap :normal yyp<c-v>$r=
silent! call repeat#set("<Plug>MyWonderfulMap", v:count)
nmap <Leader>h1 <Plug>MyWonderfulMap

它不工作。

我知道这不是一个严重的并发症,然而,我有兴趣使用重复。

repeat#set()调用必须在映射调用之后进行,而不是在映射定义之后进行一次。有了:normal,你必须用:execute来包装它,以便能够附加:call,但实际上你的映射根本不需要使用:normal:

:nnoremap <silent> <Plug>MyWonderfulMap yyp<c-v>$r=:silent! call repeat#set("<Plug>MyWonderfulMap", v:count)<CR>
:nmap <Leader>h1 <Plug>MyWonderfulMap

最新更新