我正在处理一系列评论,如:
//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快捷方式在命令模式下在选定的行上进行此转换?
答案 0 :(得分:4)
您可以使用替代品。将光标放在第一行的任意位置:
:,+3s/$/\r
这会在每个行尾插入一个额外的换行符。
您也可以使用g
命令。将光标放在第一行的任意位置:
:,+3g//norm o
对于接下来的4行中的每一行,执行o
,添加一个新的空行。
在这两个命令中,,+3
是命令的范围,请参阅:help range
。简而言之,逗号分隔范围的开头和结尾,如果我们没有指定开头,则使用当前行。 +3
从范围的开头向前3行结束命令。
而不是指定范围,例如对于这些命令中的任何一个,+3
,您可以使用V
在所需的所有行上创建一个Visual块。然后键入:
以开始命令将自动填充指定可视块的范围,然后您可以添加以s
或g
开头的命令:
:'<,'>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