Vi Editor:在具有相同空白数的模式上方插入换行符

时间:2013-03-25 13:17:32

标签: regex vim vi

if (BT_IS_SUCCESS(xCode))
        {                
          if (!(BT_IS_SUCCESS(xCode)))
          {
             else
           {
             if ()
             {

             }
           }
          }
        }

我试图在预期的代码库中的每个if语句之前插入一个换行符。 每当我使用\ r插入换行符时,都不会保留空格。

我目前正在使用

:1,$ g/;\nif (


:%s//;\r\rif

这里插入了新行,但要保留相同数量的空格,可以使用哪些选项。

提前致谢

2 个答案:

答案 0 :(得分:1)

这有帮助吗?

:g/if (/normal O

答案 1 :(得分:1)

如果你想转此:

function dummy() {
  if (true) {
    return true;
  else {
    return false;
  }
  if (true) {
    return true;
  else {
    return false;
  }
}

进入那个:

function dummy() {

  if (true) {
    return true;
  else {
    return false;
  }

  if (true) {
    return true;
  else {
    return false;
  }
}

一个解决方案是:

:g/if (/norm! O

或者你可以这样做:

:g/if (/put!=''