你如何重用视觉模式选择?

lab*_*nth 190 text-editing vim text-editors

通常在编辑代码时,我会在可视模式下选择一个块,然后搜索并替换该块。但是,在我进行更改后,它会离开可视模式。您如何在相同的选择上进行新的查找和替换?

Hep*_*ite 289

您可以使用 重新选择上次选择的可视区域gv

  • @Heptite:我不确定您是否在这里开玩笑,但是该命令会告诉您 :gv 一旦您知道它会做什么。但如果我*没有*呢?教(女)人钓鱼之类的。 (9认同)
  • @skywinder :help gv (7认同)
  • 惊人的!@Heptite 如何在没有 Stackoverflow 的情况下自己找到这个命令? (5认同)
  • `:help select-visual` 应该会引导你在 vim @skywinder 中找到正确的手册。 (5认同)

Ale*_*xMA 18

gv 绝对是最快的方法(使用最后一个选择),但如果你想要一个稳定的保存选择区域(或多个),你总是可以创建宏。

假设我想存储我当前方法的选择,从第 25-35 行开始。我可以创建一个宏,通过键入来选择整个方法

q    //start recording
a    //use register a
25G  //Go to line 25
V    //visual-line mode
35G  //Go to line 35
q    // stop recording
Run Code Online (Sandbox Code Playgroud)

然后我可以通过键入@a(在寄存器 a 中运行宏)来获取该选择。重复您希望的任何寄存器、行或行的部分。显然,如果您对文件进行更改,选择也可能会发生变化,因此您可能需要考虑使用标记而不是“硬编码”行号。


iag*_*ito 7

gv非常适合恢复最后一个选择。但有时需要多一点。

如果您需要更持久的记录,请查看我们目前在 GitHub 上开发的这个插件

VisualMarks允许您保存和恢复视觉选定的区域,就像使用m. 安装后,使用默认选项,使用:

ma
Run Code Online (Sandbox Code Playgroud)

在视觉模式下保存您当前的选择以标记a,然后

<a
Run Code Online (Sandbox Code Playgroud)

在正常模式下返回此选择。