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

发布于 2024-12-09 20:32:32 字数 138 浏览 0 评论 0 原文

例如,当我进入 Vim 的可视模式以缩进一段文本时,命令提示符始终以 '<,'> 开头。有人可以帮我解释一下为什么会这样或者更确切地说它是做什么的吗?看起来它与标记有关,但根据我迄今为止阅读的手册内容,我并不完全确定这一点。

When I pop into Vim's visual mode to, for example, indent a block of text, the command prompt always starts with '<,'>. Can someone break down for me why this is or rather what it does? It seems like it's got something to do with markers but I'm not entirely sure of this based on the manual stuff I've read so far.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

待天淡蓝洁白时 2024-12-16 20:32:32

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

'< is the first line visually selected, and '> is the last line visually selected. This is vim's way of making your command apply to only the visual area.

故事和酒 2024-12-16 20:32:32

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

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

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

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

:1,10s/helo/hello/g

The '<,'> at the beginning of your command line represents the range which you have selected . This is the also the range of test onto which the command you are about to enter would be applied.

For example if I selected a region of text in visual mode and then wanted to replace all occurrences of 'stack' with 'overflow' my command would look like:

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

Without visual mode this same command would have to be accomplished by specifying the line range by hand eg:

:1,10s/helo/hello/g
隱形的亼 2024-12-16 20:32:32

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

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

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

来源

It's a range defined by two special marks (a mark in an anchor in the text named as "quote+1 letter")

'< `< To the first line or character of the last selected Visual
area in the current buffer. For block mode it may also be the last
character in the first line (to be able to define the block). {not
in Vi}.

'> `> To the last line or character of the last selected Visual
area in the current buffer. For block mode it may also be the
first character of the last line (to be able to define the block).
Note that 'selection' applies, the position may be just after the
Visual area. {not in Vi}.

Source

情徒 2024-12-16 20:32:32

一旦您在可视模式下选择了五行,那么 '<,'> 意味着您将在该区域执行该命令。

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

Once you select in Visual Mode e.g. five lines, then '<,'> means that you will execute the command in that region.

so :'<,'>s/replaceMe/WithThis/g will apply to only that selection

十六岁半 2024-12-16 20:32:32

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

  • :* 通常意味着相同的 (:he cpo-star),

  • 在命令行模式下点击 Cu 会删除范围标记(实际上, 首)

Taking the time to add some points of trivia to the already given answers

  • :* usually means the same (:he cpo-star),

  • hitting C-u in command line mode removes the range marker (actually, removes to the beginning of the line)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文