如何在Vim中重新缩进视觉选择的列

时间:2013-09-11 22:24:26

标签: vim

我有一些文字,

Variables
我想移动variable2,var3和var4,以便所有四个变量对齐在一起。我可以使用 CTRL-V j j w 在视觉上选择列。但之后如何重新加入或删除variable2,var3和var4前面的额外空格?

请注意,移动变量1不是一个选项,因为有多行与variable1对齐。我也不能使用插件。

通过基本的vim命令,是否有更简单的方法可以在不使用任何插件的情况下完成此操作?

感谢。

4 个答案:

答案 0 :(得分:6)

你可以选择块然后

:'<,'>s/\v%V\s+//

这是'zap'在视觉选择中找到的所有连续的起始空格。

演示:

enter image description here

答案 1 :(得分:2)

将光标放在第二行,就在'variable1'中'v'的正下方。 选择一列并删除它。这是 Ctrl V j j d

根据需要多次重复()。

如果删除列太多,则撤消( u )。 ;-)

答案 2 :(得分:1)

没有插件,对齐该特定示例的最简单方法是直观地选择 v a 下面的2x3列,如您已经注意到的那样,然后点击 x 删除它。如果不使用插件,我无法想到更通用的解决方案。

您也可以做一些可重复的事情,比如将光标放在不需要的空格之前,点击 2 x 删除两个空格,使用 j 向下移动,然后使用重复双字符删除。在后续行重复。

最后,你可以创建一个macro来处理其他模式命令,但为变量对齐情况创建正确的宏需要一些练习,并且有点超出了这个答案的范围。

答案 3 :(得分:1)

如果你想用VISUAL BLCOK:

假设您的光标位于第2行的开头(c of char),您可以:

瓦特 ħ CTRL-V Ĵ Ĵ ħ< / KBD> X

你也可以用宏来做,假设光标仍在char,对于单行,你可以这样做:

w2X

然后你可以记录为:

qqw2Xj0q