我试图在一个函数内部进行搜索和替换,但是当它运行时它一直说有一个错误这里是有问题的行
exec "%normal /1. row/\<CR>n3ddi\nDELIMITER $$\n\<esc>"
我无法弄清楚为什么它会向我抛出错误
我想搜索具有“1.row”的行
然后从该行删除 3 行并添加文本 DELIMITER $$
然后移动到缓冲区中的下一个
我试图在一个函数内部进行搜索和替换,但是当它运行时它一直说有一个错误这里是有问题的行
exec "%normal /1. row/\<CR>n3ddi\nDELIMITER $$\n\<esc>"
我无法弄清楚为什么它会向我抛出错误
我想搜索具有“1.row”的行
然后从该行删除 3 行并添加文本 DELIMITER $$
然后移动到缓冲区中的下一个
我不确定你为什么要这样做normal
,这里有一个似乎可行的替代方案。此版本删除了“1. row”行和之后的两个:
exec "g/1. row/.,+2d|norm! ODELIMITER $$"
这个删除了“1.row”之后的三行:
exec "g/1. row/+1,+3d|norm! ODELIMITER $$"
我希望你有充分的理由这样做。
%
,“下一个”(n
)没有意义,无论如何它都会在整个缓冲区中执行。\<ESC>
在命令执行后,vim 保持在正常模式。试试这一行:
exec "%normal /1. row/\<CR>3ddi\r\r\rWHATEVER TEXT $$\r\r\r"