sublime批量加类型注解必须手动控制光标和上下文,因不解析语法;ctrl+d漏匹配是因仅字符串匹配且依赖单词边界、光标位置、大小写及下划线分隔符设置,需双击全选变量、关闭大小写敏感、用正则验证范围。

Sublime 本身不解析 JavaScript/TypeScript 语法,无法自动推导类型,所以“批量加类型注解”必须手动控制光标位置和上下文,否则user可能被误加在"user"字符串或userList里。
Ctrl+D 逐个选中变量名时,为什么总漏掉某个 id?
Sublime 的 Ctrl+D 是字符串匹配,不是语义识别。它只找**完全一致且处于单词边界**的文本。如果你光标停在 userId 中间(比如刚删了 U),它就只匹配 serId;如果变量是 api_v2_id,双击可能只选中 api(因为下划线默认是 word separator)。
- 正确做法:先双击选中完整变量名(如
count),确保高亮区域不含空格、点号或引号 - 检查是否启用了大小写敏感:按
Ctrl+Alt+R切换(小写count不会匹配Count) - 对含特殊字符的变量(如
$data、user.id),必须用正则搜索\$data\b或user\.id\b验证范围,再操作
怎么安全地在函数参数前加 : string 这类注解?
函数参数位置固定、结构清晰,适合用列选择 + 多光标组合。但直接 Ctrl+Shift+L 会把光标落在行尾,而注解要插在参数名**后面、逗号/右括号前面**——这个位置必须人工校准。
- 先用鼠标拖选所有目标参数行(比如从
function下方连续几行的参数列表) - 按
Ctrl+Shift+L拆出每行一个光标,然后按End→←(左箭头)回退到逗号或)前 - 更稳的方式:按住
Alt垂直拖动,从所有参数名末尾向下拉出列选区,松手后直接输入: string - 若参数对齐不齐(有缩进差异),先按
Home把所有光标拉到行首,再用方向键统一移动到目标列
用 Ctrl+H 正则替换加注解,为什么改出 let user: string = "user": string;?
因为没限制上下文,Ctrl+H 默认全局替换,遇到 user 就加 : string,不管它是在赋值右边、字符串里,还是 key 名中。
- 安全写法:打开
Ctrl+H,勾选Regex和Whole Word,查找框填\b(user|id|name)\b(?=\s*[;,)\n])—— 这个正则只匹配后面紧跟着逗号、分号、右括号或换行的变量名 - 替换框填
$1: string,点击Replace All - 但注意:
$1是捕获组,必须确保查找表达式里有();如果项目混用 JS/TS,某些语法(如对象解构{ user })仍需手动确认 - 更保守的做法:先用
Ctrl+Shift+F全局搜\buser\b,人工扫一遍结果,只选中参数声明行再Ctrl+H→In Selection
真正卡住人的不是加不上注解,而是加完发现 response.data.user: string 也被改了——Sublime 不知道 .user 是属性访问,它只认字符串。每次光标落点都要自己看一眼:是在 const 后?function 参数里?还是 JSON 字符串中间?











