2

我有一些文字,例如,

变量
我想移动 variable2、var3 和 var4 以便所有四个变量都对齐在一起。我可以使用CTRL-V j j w. 但在那之后我如何重新缩进或删除变量2、var3和var4前面的多余空格?

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

有没有更简单的方法可以通过基本的 vim 命令在不使用任何插件的情况下做到这一点?

谢谢。

4

4 回答 4

6

你可以做那个块选择然后

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

这样做是“删除”在视觉选择中找到的所有连续的起始空白。

演示:

在此处输入图像描述

于 2013-09-11T22:35:53.903 回答
2

将光标放在第二行,就在“variable1”中的“v”下方。选择一列并将其删除。这是,CtrlVjjd

根据需要重复 ( .) 多次。

u如果您删除列过分,请撤消 ( )。;-)

于 2013-09-11T22:34:05.067 回答
1

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

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

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

于 2013-09-11T22:35:39.123 回答
1

如果你想用 VISUAL BLCOK 来做:

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

whCtrl-Vjjhx

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

w2X

那么你可以记录为:

qqw2Xj0q
于 2013-09-11T22:35:59.843 回答