在Vim可视模式下,为什么命令以'<,'>?开头?

时间:2011-10-13 19:31:05

标签: vim

当我弹出Vim的可视模式,例如缩进一段文本时,命令提示符始终以'<,'>开头。有人可以为我解释为什么这是或者更确切地说是什么?它似乎与标记有关,但我不完全确定这是基于我到目前为止阅读的手册内容。

5 个答案:

答案 0 :(得分:10)

'<是视觉选择的第一行,'>是视觉选择的最后一行。这是vim使命令仅适用于可视区域的方法。

答案 1 :(得分:10)

命令行开头的'<,'>表示您选择的范围。这也是您将要输入命令的测试范围。

例如,如果我在可视模式中选择了一个文本区域,然后想要将所有出现的'stack'替换为'overflow',那么我的命令将如下所示:

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

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

:1,10s/helo/hello/g

答案 2 :(得分:9)

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

  

'&LT; `&LT;到最后选择的Visual的第一行或字符   当前缓冲区中的区域。对于块模式,它也可能是最后一个   第一行中的字符(能够定义块)。 {不   在Vi}。

     

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

Source

答案 3 :(得分:4)

在可视模式下选择,例如五行,然后'<,'>表示您将在该区域中执行该命令。

因此:'<,'>s/replaceMe/WithThis/g仅适用于该选择

答案 4 :(得分:1)

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

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

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