我有一些文字,例如,
我想移动 variable2、var3 和 var4 以便所有四个变量都对齐在一起。我可以使用CTRL-V j j w. 但在那之后我如何重新缩进或删除变量2、var3和var4前面的多余空格?
请注意,移动变量 1 不是一个选项,因为有多行与变量 1 对齐。我也不能使用插件。
有没有更简单的方法可以通过基本的 vim 命令在不使用任何插件的情况下做到这一点?
谢谢。
我有一些文字,例如,
我想移动 variable2、var3 和 var4 以便所有四个变量都对齐在一起。我可以使用CTRL-V j j w. 但在那之后我如何重新缩进或删除变量2、var3和var4前面的多余空格?
请注意,移动变量 1 不是一个选项,因为有多行与变量 1 对齐。我也不能使用插件。
有没有更简单的方法可以通过基本的 vim 命令在不使用任何插件的情况下做到这一点?
谢谢。
你可以做那个块选择然后
:'<,'>s/\v%V\s+//
这样做是“删除”在视觉选择中找到的所有连续的起始空白。
演示:
将光标放在第二行,就在“variable1”中的“v”下方。选择一列并将其删除。这是,CtrlVjjd。
根据需要重复 ( .) 多次。
u如果您删除列过分,请撤消 ( )。;-)
如果没有插件,对齐该特定示例的最简单方法是直观地选择下面的 2x3 列va,正如您已经注意到的那样,然后点击x删除它。如果不使用插件,我想不出更通用的解决方案。
您还可以做一些可重复的操作,例如将光标放在不需要的空格之前,点击2x删除两个空格,使用j向下移动,然后使用.重复删除两个字符。在后续行中重复。
最后,您可以创建一个宏来处理其他模式命令,但是为变量对齐情况创建正确的宏需要一些练习,并且有点超出了这个答案的范围。
如果你想用 VISUAL BLCOK 来做:
假设您的光标位于第 2 行 ( c of char
) 的开头,您可以:
whCtrl-Vjjhx
你也可以用宏来做,假设光标还在char
,对于单行,你可以这样做:
w2X
那么你可以记录为:
qqw2Xj0q