Vim:选择经过线端的矩形块
如何在Vim中选择一个超出行末尾的矩形文本块 假设我有Vim:选择经过线端的矩形块,vim,Vim,如何在Vim中选择一个超出行末尾的矩形文本块 假设我有 aa bbb cc dddd ee 我想选择一个矩形块,在所有行上扩展四个字符。如果\u被视为空白,则我需要: aa__ bbb_ cc__ dddd ee__ 矩形可视块,C-v,仅延伸至选定的最后一行的末端: 在Emacs中,我可以使用C-x(矩形标记模式);)做我想做的事情 具有不规则边框的分块视觉模式 要将分块视觉选择扩展到所有覆盖行的末尾,可以按$将Vim切换到“不规则边框”选择模式。这一“把戏”在以下网站中提到: 通过按块
aa
bbb
cc
dddd
ee
我想选择一个矩形块,在所有行上扩展四个字符。如果\u
被视为空白,则我需要:
aa__
bbb_
cc__
dddd
ee__
矩形可视块,C-v
,仅延伸至选定的最后一行的末端:
在Emacs中,我可以使用C-x
(矩形标记模式
);)做我想做的事情 具有不规则边框的分块视觉模式
要将分块视觉选择扩展到所有覆盖行的末尾,可以按$
将Vim切换到“不规则边框”选择模式。这一“把戏”在以下网站中提到:
通过按块选择,{string}将{string}附加到
块的每一行上都有块。有一些不同的行为
由于不同的线路长度,块RHS不是直的:
:%s,^..$,&__,g | %s,^...$,&_,g
: ............ command
% ............ whole file
^ ............ begining of line
.. ........... two characters
$ ............ end of line
& ............ the whole search pattern
__ ........... (plus) the chars we want
g ............ globally
| ............ another command (this time for 3 chars)
选择块后,可以按
$
,将选择范围扩展到所有行的末尾。这就足够了吗?@phd的可能副本虽然该问题的答案也是这个问题的有效答案,但我仍然不会投票赞成副本,因为该问题有不同的用例,并且至少有一个有效的解决方案(见Matthew的评论)这不是另一个问题的有效答案虚拟编辑绝对是我要找的!不过,我不清楚带有不规则边框的分块视觉模式是如何实现同样的效果的。这似乎是在参差不齐的行的末尾添加文本,而不是用空格填充矩形选择。我遗漏了什么吗?@LoremIpsum这就是为什么国际非政府组织正确地指出行为是不同的。如果没有virtualedit=all
,您将不会收到矩形。但是对于编码用例,您通常不希望插入无用的空格。如果您想对齐代码,有更好的方法(例如)
:%s,^..$,&__,g | %s,^...$,&_,g
: ............ command
% ............ whole file
^ ............ begining of line
.. ........... two characters
$ ............ end of line
& ............ the whole search pattern
__ ........... (plus) the chars we want
g ............ globally
| ............ another command (this time for 3 chars)