在vim中用空行分隔线?

时间:2012-09-12 02:15:15

标签: vim newline shortcut multiline

我正在处理一系列评论,如:

//this is comment 1
//this is comment 2
//this is comment 3
//this is comment 4

我想让它看起来像:

//this is comment 1

//this is comment 2

//this is comment 3

//this is comment 4

是否有vim快捷方式在命令模式下在选定的行上进行此转换?

5 个答案:

答案 0 :(得分:4)

您可以使用替代品。将光标放在第一行的任意位置:

:,+3s/$/\r

这会在每个行尾插入一个额外的换行符。

您也可以使用g命令。将光标放在第一行的任意位置:

:,+3g//norm o

对于接下来的4行中的每一行,执行o,添加一个新的空行。

在这两个命令中,,+3是命令的范围,请参阅:help range。简而言之,逗号分隔范围的开头和结尾,如果我们没有指定开头,则使用当前行。 +3从范围的开头向前3行结束命令。

而不是指定范围,例如对于这些命令中的任何一个,+3,您可以使用V在所需的所有行上创建一个Visual块。然后键入:以开始命令将自动填充指定可视块的范围,然后您可以添加以sg开头的命令:

:'<,'>s/$/\r

答案 1 :(得分:1)

您可以使用宏:

qao<esc>jq

然后使用3@a在最后一行上应用宏3次。

其中:

qa    "Start recording a macro named a
o     "Insert new line under current line
<esc> "Exit insert mode
j     " Move down next line
q     " end macro

答案 2 :(得分:1)

使用 V

选择您的视觉选择

然后运行正则表达式替换以用两个

替换一个换行符

:s/\n/\r\r/g

答案 3 :(得分:1)

可以使用命令

:g/^/pu_

在整个缓冲区(默认情况下)或选定的行范围内。

答案 4 :(得分:0)

使用 V

选择所需的行

然后输入s/\ze/\r