Vim,删除两行之间的空白

7

假设有以下内容:

{
    int a = 123;
    int b = 456;
}

i want to change it to:

{
    int a = 123;int b = 456;
}

如果我使用普通文本编辑器,我会跳到第二行,然后按下HomeShift+UpShift+EndDelete删除。
那么在vim中怎么做呢?它应该适用于第1行和第2行之间的任何空白数量。

旁注:根据您(现在不再)使用的编辑器,您可以在第二行上执行 Home,Ctrl+Backspace 或在第一行上执行 End,Ctrl+Delete - mihai
1个回答

17

尝试使用J命令,它可以将两行合并(应用于第一行)。 如果您想要轻松地合并由多个空行分隔的两行文本,还可以在可视模式下选择两行文本,然后应用J

但是这个命令会在连接的行之间插入一个空格(在大多数情况下...)。

对于您的需求,您可以使用变量gJ,它不会在行之间插入(或者删除)任何空格。


那个完美地运作了!谢谢。我所指的“空格”是指多个空格和/或制表符,就像代码嵌套深度时一样。但是“J”在这里也可以使用。 - bling
我发现 gJ 不会修改空格,它只是删除换行符,然后你就会得到两个部分之间的所有缩进空格。有时候我希望有一个版本的 J 可以删除所有中间的空格,但并不足够让我去编写一个。 :) - dash-tom-bang
@dash-tom-bang 是的,这是可能的,但我从来没有真正使用过它。通常我会用 V 选择要删除的行,然后用 d 删除,如果需要的话再合并行。 - lbonn
为什么我十年前不知道这个。我从来没有把行连接起来,因为它太麻烦了。 - three

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接