行
如果我想在 9 行文本上运行 :s 命令,我键入 9:s,vim 将命令行设置为
:.,+8s
这非常有用。但是,如何才能在键映射中应用该行为呢?
我已经尝试了以下映射开始:
nmap _p :s/etc
nmap _p :^Us/etc
nmap _p ^U:s/etc
nmap _p :^Ulet @l=v:count1<cr>:exe @l.'s/etc'
nmap _p :^Ulet @l=v:count1<cr>:exe @l.':s/etc'
nmap _p :^Ulet @l=v:count1<cr>:exe '.,+'.@l-1.'s/etc'
前 3 个都9_p视为_p,接下来的 2 个将其视为_p但将其应用于文本的第 10 行,而最后一个努力的行为类似于前 3
使用 :normal
获取映射的计数:
nmap _p :normal :s/etc/
您可以使用以下地图:
nnoremap _p :<c-u>exe".,+".v:count." s/etc"<cr>
这将执行命令.,+N s/etc
其中N
是正常模式计数。