【问题标题】:How to select a vertical block with exceeding lines?如何选择超过线条的垂直块?
【发布时间】:2013-10-14 07:45:15
【问题描述】:

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

但是假设我有这样的文字:

1 abcde
2 abcdefg
3 abcdefg
4 abc

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

1 abc
2 abc
3 abc
4 abc

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

【问题讨论】:

    标签: vim selection


    【解决方案1】:

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

    Ctrl-V$3j

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

    如果您确实想要一个“块”文本(在那些“较短”行上附加空格),您可以:

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

    通过将ve 设置为all,您的光标可以移动到任何地方。如果您喜欢在选择/复制后,您可以将ve 设置回原来的值。

    【讨论】:

      【解决方案2】:

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

      Ctrl+v3j$

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 这也是我的想法。但这更容易:检查我自己的答案;)。
        猜你喜欢
        • 2016-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        相关资源
        最近更新 更多