要是你正在为项目里几十个文件中散落的 fetchUser() 函数调用发愁,想把它们全部替换成 getUserV2(),又不想手动逐个打开文件、查找、替换、保存,那么 CodeGeeX 的语义级批量替换功能正好能派上用场。它依靠精准识别函数调用,而不是简单的字符串匹配——像注释里写的 // fetchUser() 或者字符串里的 'fetchUser()' 都不会被误伤,让你省心不少。

用语义搜索一键替换全项目过时 API
这一步依赖的是 AST 分析,而非简单的文本搜索“fetchUser”。所以无论是 await fetchUser(id)、fetchUser ( ),还是 const u = fetchUser;,都能被正确识别为真正的函数调用点,而不会误伤同名变量。
操作起来也很直观:按 Ctrl+Shift+P 打开命令面板,输入并选择“CodeGeeX: Semantic Search”,然后在弹出的搜索框里输入自然语言指令——比如“把所有调用 fetchUser 的地方改成 getUserV2,保留原有参数和括号结构”。回车后稍等片刻,分析结果就会展示出来。
预览面板会列出所有匹配位置,每一行都显示原代码和替换后的代码。值得留意的是,那些带注释的调用(比如 // fetchUser())或者字符串里的假调用(比如 'fetchUser()')会不会被漏掉?CodeGeeX 默认排除这两类,所以基本不用担心误改。
如果只想单独应用某处替换,点击该行右侧的 ✅ 图标即可;想一次性搞定,直接点顶部的“Apply All”按钮。
替换完成后,VSCode 编辑器标签页的标题上会出现一个 ● 圆点,表示有未保存的更改。注意:必须手动按 Ctrl+S 保存所有已修改的文件——CodeGeeX 不会自动写入磁盘,这步要是漏了,Git 那边根本看不到任何变更。
在单个文件内快速覆盖所有废弃调用
如果你只关心当前正在编辑的这个文件,而且想立刻看到全部变更效果,右键菜单是最直接的入口。
右键点击编辑器的标签页,选择“CodeGeeX: Replace All Deprecated in This File”,弹窗会列出本次将修改的 3~12 处变更。确认无误后点击“Apply”,整个文件就会被重写。
务必先提交当前文件的 Git 快照——这个操作不可撤销,重写后的内容无法通过 Ctrl+Z 恢复原始版本。
光标悬停精准替换单个废弃函数
有时候你只想改动一处,但不确定推荐的替代方案是什么,或者想边看边确认参数变化。这种场景下,光标悬停就特别顺手。
把光标悬停在被标记为 deprecated 的函数名上,按 Alt+Enter(Windows/macOS 都适用),选择“Replace with recommended alternative”,确认后新调用会自动插入,旧参数也会被清理干净——比如那些已经移除的 callback 参数,会被彻底清除。
