要改变的正则表达式是什么
class ABC
{
}
到
class ABC {
}
我可以将J命令用于一行,但如何对整个文件执行此操作。
由于
答案 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/