Vim视觉模式中的奇怪角色

时间:2010-01-13 12:38:37

标签: vim vi

当我进入视觉模式(从正常模式),然后按:时,<,'>

后面会出现以下字符::

它们是一个功能还是一个bug?

Windows XP SP2

alt text http://img94.imageshack.us/img94/5590/16595366.jpg

5 个答案:

答案 0 :(得分:7)

您选择了可视范围,当您输入:时,则会自动添加所选范围说明符'<,'>以指示该命令仅适用于选择。

答案 1 :(得分:2)

在vi [m]中,您可以在当前行(默认)或任何其他行(或更一般地,一系列行)上应用:命令(ex-commands)。范围表示为start,end。例如,删除当前行,您可以执行以下操作:

:d

删除范围(当前-1)到(当前+ 1)的三行:

:-1,+1d

vim 中,标记<>用于表示当前选择(如果未选择任何内容,则使用最后一个选择)。因此,当您在可视模式下键入:时,vim足够聪明,可以意识到您可能只想将命令应用于所选区域,因此为:提供了范围。您只需键入命令,结果仅适用于选择。 (确切地说,选择中的行定义的范围。)

这意味着您可以通过分别键入'&lt; '&gt; 来实际移动到包含最后一个选定区域的开头和结尾的行。将'替换为`(反引号)到选择的开头/结尾。

答案 2 :(得分:1)

这当然不是错误。它是可以在命令之前的范围修饰符,在这种情况下,它表示视觉上突出显示的范围。

输入

:h cmdline-ranges

了解有关范围的更多信息。

答案 3 :(得分:0)

它们是范围的正常指示。

答案 4 :(得分:0)

'<,'>是您在视觉上选择的区域。想一想,如果你知道数字,它很容易表示范围,但对于视觉选择的文本,表示它们的唯一方法(写/键入它)将使用专门的符号,在这种情况下'<,'> < / p>

此外,您可以在视觉选择区域执行命令,就像在一系列行号上执行命令一样

1,200 s/old/new/c

'<,'> s/old/new/c