Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令字符串启动的vim键映射,例如9:s/pat/sub/ge<;cr>;:_Vim_Mapping - Fatal编程技术网

命令字符串启动的vim键映射,例如9:s/pat/sub/ge<;cr>;:

命令字符串启动的vim键映射,例如9:s/pat/sub/ge<;cr>;:,vim,mapping,Vim,Mapping,如果我想在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' nm

如果我想在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'  
nmap\u p:s/etc
nmap:^Us/等
国家地图:s/etc
nmap\u p:^Ulet@l=v:count1:exe@l.'s/etc'
nmap\u p:^Ulet@l=v:count1:exe@l.:s/etc'
nmap\u p:^Ulet@l=v:count1:exe',+'。@l-1.s/etc'

前3个将9_p视为_p,后2个将9_p视为_p,但将其应用于文本的第10行,而最后一次尝试的行为与前3个类似使用
:normal
进行映射计数:

nmap _p :normal :s/etc/

您可以使用以下地图:

nnoremap _p :<c-u>exe".,+".v:count." s/etc"<cr>
nnoremap\u p:exe“,+”.v:count.“s/etc”

它将执行命令
,+N s/etc
,其中
N
是正常模式计数。

我不确定是否理解您试图创建的映射。是否需要在光标下的8行(加上光标所在的行)上执行替换的映射?