通常在编辑代码时,我会在可视模式下选择一个块,然后对该块进行搜索和替换。但是,在我进行更改后,它会离开可视模式。如何对同一选择进行新的查找和替换?
答案1
您可以使用 重新选择最后选定的可视区域gv
。
答案2
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
然后我可以通过键入(在寄存器 a 中运行宏)来恢复该选择@a
。对您想要的任何寄存器、行或行的部分重复此操作。显然,如果您对文件进行更改,选择也可能会改变,因此您可能需要考虑使用标记而不是“硬编码”行号。
答案3
gv
非常适合恢复上次选择。但有时需要更多。
如果你需要更持久的记录,请查看这个插件我们目前正在 GitHub 上进行工作。
视觉标记允许您保存和恢复视觉选定区域,就像使用 保存和标记文件中的特定位置一样m
。安装后,使用默认选项,使用:
ma
在视觉模式下保存当前选择以标记a
,然后
<a
在正常模式下返回该选择。
答案4
假设我想用 Hello 替换 Goodbye,并选择下面的代码:
public static void main(String[] args){
System.out.println("Goodbye World");
}
我会输入,然后 vim 将用:s/Goodbye/Hello/
替换所有实例Goodbye
Hello
它只是 vim 的正则表达式和可视模式选择的组合。当您选择时,它应该会自动填充'<,'>