VIM删除函数{}里面的内容?

public static int getMax(int[] array) {
int max = 0, i = 0;

max = array[0];
for (i = 1; i < array.length; i++) {
if (max < array[i]) {
max = array[i];
}
}

return max;
}
利用命令行模式匹配的方法删除函数体的全部内容。我以前都可以写出来好久不用VIM都忘记了。希望各位大神钻研一下。这样删函数体方便很多。

第1个回答  2020-08-23

题主你好,

方法很简单, 直接输入命令:

    di{ 或 di}

需要注意的是,不是在任何位置输入上面的命令都可以,就题主的代码来看, 将光标定位到除红框内的行外的其它任意一行的任意位置, 然后输入上面命令即可:

比如将光标定位到第1,2,3,4,5,10,11,12行然后输入di{或di}都是OK的.

执行命令后的截图如下:

----------------

批量删除函数体:

    :g/ [^ ]\+(/normal jdi{

测试代码截图:

命令执行后的效果图:

希望可以帮到题主, 欢迎追问.

追问

不是这种方式,这种方式我也会。如果函数很多,这种方式就不香了。我的意思是要用:%s/pattern/content/g的方式来做。

追答

题主你看一下, 我在回答里面又追加了点内容, 用的不是你说的替换命令, 但是对于批量删除函数体的效果应该是一样的