【问题标题】:What does '<,'> really mean when you enter an Ex command in visual mode in Vim?当您在 Vim 的可视模式下输入 Ex 命令时,'<,'> 的真正含义是什么?
【发布时间】:2013-05-31 01:11:27
【问题描述】:

在您直观地选择一个文本块并输入 : 后,Vim 会为您写入 '&lt;,'&gt;

但我很好奇 '&lt;,'&gt; 的真正含义以及它是否可以编辑。

【问题讨论】:

标签: vim


【解决方案1】:

'&lt;,'&gt; 表示法是一个 vim 范围,它代表最后一个选定的块。通常,范围边界说明符'x 的意思是“x 指向的任何标记”。 &lt;&gt; 的特殊情况是指最后一个选定块的开始和结束。

有关不同类型范围的更多信息和示例,请参阅Range page on the vim wiki

【讨论】:

  • 哈哈酷,我实际上可以在选择并取消选择后跳转到'&lt;'&gt;。我不确定这会有多大用处(因为您可以使用gv 重新选择),但它绝对可以帮助您理解'&lt;,'&gt;。非常感谢!
  • @hobbes3、'&lt;'&gt; 如果您想在选择前添加或附加一些新文本,则在映射或宏中可能很有用。请参阅:help motion.txt 了解更多信息。
  • @romainl 在可视模式下输入o+motion 来选择更多文本不是更容易吗?
  • 一旦您处于选择模式,是的,但是当您使用或围绕所选文本执行相对复杂的操作时,您肯定会在某一时刻退出选择模式。在这种情况下,这些标记比gvo 更实际和确定性。尤其是在非交互式的宏或映射的上下文中。
【解决方案2】:

From vim wiki:

...因为在选择行时输入了命令,Vim 将命令显示为:

:'<,'>s/old/new/g

自动输入范围 ' 以识别上次视觉选择的行(现在不需要视觉选择它们

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-07
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多