如何选择超出直线的垂直块?

时间:2013-10-14 07:45:15

标签: vim selection

在Vim中,您可以使用 Ctrl + v 来选择垂直代码块。这非常酷,因为这样您就可以在文本的任何位置插入矩形文本块。我还没有在其他任何地方见过的功能。

但是我说有一个文字:

1 abcde
2 abcdefg
3 abcdefg
4 abc

我想选择这个完整的块作为垂直块。如果我在第1行的a,并开始选择,然后向下移动到第4行,我只能将光标移动到该行中的最后一个字符c。所以上面的行被切断了,给我这个选择:

1 abc
2 abc
3 abc
4 abc

有没有办法将全文选为垂直块?

3 个答案:

答案 0 :(得分:2)

如果你想精确选择4行(包括第1行),你可以:

Ctrl-V$3j

这会选择所有文本,但它们实际上不在“块”中,因为第一行和最后一行的长度不同。

如果你想要一个“块”的文本,(在那些“较短”的行上添加空格),你可以:

set ve=all
Ctrl-V hhhhh... jjjjj...

通过将ve设置为all,您的光标可以转到任何位置。如果您在选择/复制后喜欢,可以将ve设置回其原始值。

答案 1 :(得分:1)

在问这个问题后一分钟我发现了自己。诀窍是按上面第4行的 $ 。因此,如果光标在第1行的a上,那么完整的一系列击键是:

控制 + v 3 Ĵ $

答案 2 :(得分:0)

快速而肮脏的解决方案是在第4行的末尾插入4个空格。