我有这样的文字:
This is a normal line.
6 spaces are before me. //line 1
4 spaces are before me. //line 2
3 spaces are before me. //line 3
6 spaces are before me. //line 4
4 spaces are before me. //line 5
Another normal line.
2 spaces are before me. But that is ok. //line 7
Line goes on.
如何使用vim选择并删除第1行到第5行之前的所有空格?
答案 0 :(得分:7)
我使用视线模式( Shift + V )来选择我想要的行,然后对它们运行替换命令(点击:
应该在开始时自动包含视觉标记'<,'>
:
:'<,'>s/^\s*
当你工作并且没有弄清楚行号时,这很有用。在这种情况下,如您所知,它是第2到第6行,您可以这样做:
:2,6s/^\s*
快速计算行号的有用选项是set number
。
substitute命令从每行的开头(\s*
)贪婪地抓取所有空格(^\s*
),并将其替换为空(等同于/^\s*//
)。
答案 1 :(得分:2)
另一种快速方法:您也可以使用<<
命令。转到第1行并输入5<<
以将第1-5行向左移动。重复.
命令,直到所有空格都消失。这对于使用>>
增加缩进非常有用。
答案 2 :(得分:1)
如果没有为此文件定义缩进,则可以使用={motion}
。如果光标位于第一行,请执行 = G 缩进到文件末尾或 =} 缩进到下一个空行。
要做到这一点,以下4行使用 = 4j 。