正常运行搜索和替换

时间:2013-07-10 13:37:53

标签: vim

即时尝试进行搜索并使用普通函数替换函数内部,但是当它运行时,它仍然说这里有一个错误是有问题的行

exec "%normal /1. row/\<CR>n3ddi\nDELIMITER $$\n\<esc>" 

我无法弄清楚为什么它会给我带来错误

  

我想搜索“1. row”

的行      

然后从该行删除3行并添加文本DELIMITER $$

     

然后移动到缓冲区中的下一个

2 个答案:

答案 0 :(得分:3)

我不确定你为什么要用normal做这个,这是一个似乎有用的替代方案。此版本删除了“1.行”行和两行之后:

exec "g/1. row/.,+2d|norm! ODELIMITER $$"

这个删除了“1. row”之后的三行:

exec "g/1. row/+1,+3d|norm! ODELIMITER $$"

答案 1 :(得分:2)

我希望你有充分的理由这样做。

  • 如果您有%,则“下一个”(n)毫无意义,无论如何它都会在整个缓冲区上执行。
  • 执行命令后不需要\<ESC>,vim保持正常模式。

试试这一行:

exec "%normal /1. row/\<CR>3ddi\r\r\rWHATEVER TEXT $$\r\r\r"