Vim - 如何让自己创建的映射可重复?

9

我在我的vimrc文件中有以下映射:

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

我希望您能用.重复使用<Leader>h1/2

有一个由Tim Pope开发的repeat.vim插件,其使用方法如下:

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.vim来创建自己的映射。


1
请参见http://vimcasts.org/episodes/creating-repeatable-mappings-with-repeat-vim/。 - Hotschke
1个回答

9
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接