将非悬挂式牙套改为悬挂式牙套

时间:2011-06-22 10:46:40

标签: vim

要改变的正则表达式是什么

class ABC
{
}

class ABC {
}

我可以将J命令用于一行,但如何对整个文件执行此操作。

由于

5 个答案:

答案 0 :(得分:4)

一些答案​​建议使用替换命令。对我而言,将:global命令与:join命令结合使用感觉更合适。首先创建一个合适的搜索模式:

/\n{

这适用于问题中给出的简单示例,但可能需要根据您正在处理的文件的内容进行细化。获得搜索模式后,可以运行全局命令:

:g//j

如果将搜索字段留空,Vim会自动使用上一个搜索模式(对于:substitute命令也是如此)。我更喜欢将全局命令分成两个单独的步骤,但你也可以在一个单独的步骤中完成它。这是长手形式:

:g/\n{/join

答案 1 :(得分:0)

尝试以下方法:

:%s/\(class.*\)\_.{/\1\ {/g

(更新)

答案 2 :(得分:0)

使用以下搜索并替换:

:%s/\n{/ {/g

答案 3 :(得分:0)

如何录制宏,即

/class               # search for class
gg                   # goto beginning of file
qq                   # start recording of macro
J                    # join lines
n                    # move to next match
q                    # stop recording

使用@q执行

答案 4 :(得分:0)

对于你的例子,这对我在gVim上工作: %s /class.*\zs\_[^{]*{/ {\r/