【问题标题】:In Vim visual mode, why does the command start with '<,'>?在 Vim 可视模式下,为什么命令以 '<,'> 开头?
【发布时间】:2011-12-07 06:00:28
【问题描述】:

当我进入 Vim 的可视模式以缩进一段文本时,命令提示符总是以 '&lt;,'&gt; 开头。有人可以为我分解为什么会这样或者更确切地说它是做什么的吗?似乎它与标记有关,但根据我目前阅读的手册内容,我并不完全确定这一点。

【问题讨论】:

  • 当您在输入“:”时选择了一个区域(可视模式)时会发生这种情况

标签: vim


【解决方案1】:

花时间为已经给出的答案添加一些琐事

  • :* 通常表示相同(:he cpo-star),

  • 在命令行模式下点击C-u会删除范围标记(实际上是删除到行首)

【讨论】:

    【解决方案2】:

    命令行开头的'&lt;,'&gt; 表示您选择的范围。这也是您将要输入的命令应用到的测试范围。

    例如,如果我在可视模式下选择了一个文本区域,然后想用“溢出”替换所有出现的“堆栈”,我的命令将如下所示:

    :'<,'>s/stack/overflow/g
    

    如果没有可视模式,则必须通过手动指定行范围来完成相同的命令,例如:

    :1,10s/helo/hello/g
    

    【讨论】:

    • 这也是你不能在一行中搜索和替换选择的原因::s 只给出行号。 (并且使用 `&lt;,`&gt; 似乎不起作用。)
    • @idbrii 将 \%V 放在搜索词的开头以在一行内操作
    • 谢谢,在 vim 中进行 base64 en/decode 时,我有点被这些符号弄糊涂了。 :-)
    【解决方案3】:

    这是一个由两个特殊标记定义的范围(文本中名为“quote+1 letter”的锚点中的标记)

    '

    '> `> 到最后选定的 Visual 的最后一行或字符 当前缓冲区中的区域。对于块模式,它也可能是 最后一行的第一个字符(能够定义块)。 请注意,“选择”适用,该位置可能就在 视觉区。 {Vi 无此功能}。

    Source

    【讨论】:

      【解决方案4】:

      在可视模式下选择后,例如五行,然后'&lt;,'&gt; 表示您将在该区域执行命令。

      所以:'&lt;,'&gt;s/replaceMe/WithThis/g 将仅适用于该选择

      【讨论】:

        【解决方案5】:

        '&lt; 是视觉选择的第一行,'&gt; 是视觉选择的最后一行。这是 vim 使您的命令仅适用于可视区域的方式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-17
          相关资源
          最近更新 更多