You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vim中复用刚搜索的字符串进行替换,无需重新输入?

Vim复用搜索历史做替换的实用方法

1. 一键复用上次搜索的正则

不用重复输入搜索模式,直接在替换命令里留空搜索部分就行:

:s//替换内容/

比如你刚用/your-regex搜完,输入:s//new-text/g,Vim会自动把上次的搜索正则拿过来当匹配规则,直接完成替换。

2. 调用历史里的任意搜索条目

如果要选更早的搜索记录,在输入:s/之后:

  • 按<C-r>/(Ctrl+r 再按 /),直接插入上次搜索的内容;
  • 想翻历史的话,按<C-r>后按/,再用上下箭头选,选中回车就插进去了;
  • 终端版Vim完全支持这些快捷键,不用GUI复制粘贴那一套。

针对你的注释格式修正的具体操作

你要把/****ABC****/改成/**** ABC *****/(中间内容前后加空格),按这两步来:

  1. 先调搜索正则:输入/\(\/\*\{-}\)\(\S\+\)\(\*\{-}\/\),回车确认能匹配目标注释。
    拆解下这个正则:
    • \(\/\*\{-}\):抓开头的/加任意数量的*(\{-}是非贪婪匹配,避免匹配过多*);
    • \(\S\+\):抓中间的非空白内容(不管是单个单词还是多个连在一起的);
    • \(\*\{-}\/\):抓结尾的任意数量*加/。
  2. 执行全局替换:输入:%s//\1 \2 \3/g,回车搞定。
    这里的//直接复用了刚才的搜索正则,\1、\2、\3对应三个捕获组,在中间的\2前后加空格就实现了格式调整。

额外小技巧

  • 输入q/能打开搜索历史窗口,光标选中想要的正则,按y复制,然后在替换命令行按<C-r>"就能粘贴;
  • 搜索里的特殊字符转义Vim会自动处理,不用手动改。

内容的提问来源于stack exchange,提问作者Alan G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:50:43