sublime text 的变量查找本质是文本匹配,需手动控制边界;alt+f3 全选同名词依赖光标位置,ctrl+d 增量选中,ctrl+f+alt+enter 最可控,跨文件需正则 \bxxx\b 并过滤路径。

Sublime Text 无法真正“查找变量”,只能查找文本;所谓“同名变量”高亮,本质是全文本匹配,必须手动控制边界,否则 user_id 会连带改掉 user_id_str、"user_id" 和注释里的 user_id。
Alt+F3 全选同名词,但光标位置决定一切
这个快捷键不看选中内容,只认光标当前落在哪个字符上:Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS)会一次性为光标下那个词的所有匹配创建多光标。
- 光标必须停在变量名内部字母上(如
api_timeout的a或_上),停在空格、引号、括号后就失效 - 默认开启 Whole Word 和 Match Case:所以
api_timeout不会匹配api_timeout_v2或Api_Timeout - 想忽略大小写?先按
Ctrl+Alt+U切换开关;想匹配子串(如所有含id的词)?先按Alt+W关掉 Whole Word - 匹配超 500 处时界面可能卡顿——这不是崩溃,是渲染阻塞,建议改用
Ctrl+F + Alt+Enter分步确认
Ctrl+D 增量选中,适合跳过字符串和注释
Ctrl+D(Windows/Linux)或 Cmd+D(macOS)不是全选,而是从当前光标开始向下线性查找下一个**完全相同**的字符串,每按一次追加一个匹配项。
- 首次按:选中光标所在词(需确保双击或拖选完整,不能只点在末尾空格上)
- 后续按:严格按文档顺序向下找,不回溯、不跨作用域、不识别引号或注释边界
- 遇到不想改的地方(比如
"user_id"字符串)?按Ctrl+K再按Ctrl+D,它会跳过当前项 - 误加太多?按
Ctrl+U撤销上一次添加,比狂按Esc精准得多
Ctrl+F + Alt+Enter 才是最可控的路径
当你不确定 Alt+F3 是否安全,或者需要限定范围(比如只改 JS 区域、排除注释),走查找流程最稳妥——看得见匹配数,也方便调参。
- 把光标放在目标词上(如
log_level),按Ctrl+F,Sublime 自动填入该词 - 点右下角图标切换模式:
Alt+W开/关 Whole Word,Alt+C控制大小写,Alt+R开正则(推荐填\blog_level\b) - 左下角看到 “73 matches” 才放心按
Alt+Enter转为多光标;若发现匹配项里混着"log_level",立刻停手,改用正则再试 - 跨文件操作必须用
\bxxx\b正则,且Where栏填路径过滤(如./src/**/*.js或!node_modules/**)
为什么找不到引用?项目设置和语法类型才是关键
全局搜不到变量,大概率不是快捷键问题,而是 Sublime 默认不解析模块链和作用域——它只扫纯文本,且依赖项目结构和语法高亮来辅助过滤。
- 确认左下角显示项目根路径(如
~/my-project/);没显示?执行Project → Add Folder to Project - 右下角语法类型必须正确(如显示
JavaScript,不能是Plain Text),否则Ctrl+Alt+G会退化为普通全文匹配 -
Ctrl+Shift+F搜索时,务必关闭正则(右下角 .* 图标未点亮),否则_、$会被当元字符处理 - 搜
fetch却命中refetch?点右上角W开启 Whole Word;仍不稳?启用正则,写成\bfetch\b
真正危险的不是操作慢,而是误改后没意识到——user_id 改成 user_new_id 的同时,顺手把 "user_id" 字符串和 username 也改了,这种错误不会报错,只会悄悄埋雷。每次批量操作前,花三秒看一眼匹配列表,比事后 debug 快十倍。











