安全修改属性名需严格整词匹配:双击选中无边界字符的变量名,用ctrl+alt+r开启大小写敏感与整词匹配;列编辑前先统一缩进并手动对齐光标;中英文混排路径改用正则替换;禁用drag_text避免ctrl+click失效。

Ctrl+D 选中属性名时总误改字符串和注释
直接双击 name 后狂按 Ctrl+D,结果把 "name": "Alice" 和 // fallback name 也一起改了——Ctrl+D 只认字面匹配和单词边界,不区分语法角色。
安全做法:
- 双击选中目标属性名(如
age),确认高亮区域**严格包裹变量名本身**,前后不能带点、引号、空格或下划线(比如别选中user_age里的age) - 按
Ctrl+Alt+R打开查找面板,勾选Aa(大小写敏感)和\b(整词匹配),再输age→Alt+Enter全选,比连按Ctrl+D更可控 - 若某处必须跳过(如 JSON 字符串里的
"age"),光标停在那行时立刻按Ctrl+K再按Ctrl+D,当前项被忽略,光标移向下一处
用 Ctrl+Shift+L 拆出对象字段行,但光标不对齐
想把 obj.name、obj.id、obj.createdAt 这几行统一改成解构形式 { name, id, createdAt },结果按 Ctrl+Shift+L 后光标全卡在行尾,没法对齐 . 后面。
根本原因:Ctrl+Shift+L 只按换行符切片,不识别缩进或结构。如果某行开头有空格、某行是 obj.children 而另一行是 obj.className,光标就散了。
实操步骤:
- 先用鼠标拖选全部目标行(确保覆盖每行末尾的
\n,最后一行也要选中换行符) - 按
Ctrl+Shift+L→ 立刻按两次Home(第一次跳到行首,第二次跳过缩进空格) - 此时所有光标都在逻辑行首,输入
{,再按End移到行尾,输入, - 删掉最后一行末尾多余的逗号;如有缩进不一致,提前运行
Ctrl+Shift+P→Indentation: Reindent
列编辑改 key 名时中文路径光标漂移
处理像 api/用户列表、api/订单详情 这类中英文混排的 API 路径,想用 Alt+拖拽 把 /用户列表 统一替换成 /v2/用户列表,结果光标向右偏移,改错位置。
这不是 Bug,是 Sublime 按 Unicode 码点数算列宽,中文字符视觉占 2 列但码点只算 1 个,导致矩形选区错位。
绕过方法:
- 必须用等宽字体(如
Fira Code或Consolas),禁用系统 UI 字体 - 关闭软换行:
View → Word Wrap取消勾选 - 不要从第一行中文开头拖,改从第二行相同字段起始列垂直拉(例如都从
/开始) - 更稳的方案:用正则替换 ——
Ctrl+H→ 开启.*→ 查找api/([^/]+)→ 替换为api/v2/$1
drag_text 导致鼠标点不加光标,尤其远程桌面或中文输入法下
想用 Ctrl+Click 在多行开头加光标,点了没反应,或者一拖就移动文本——这是 Sublime 默认开启 drag_text,让 Ctrl+Click 优先触发拖动而非加光标。
必须关掉:
- 打开
Preferences → Settings - 在用户设置里加一行:
"drag_text": false - 保存并重启 Sublime
点击位置也很关键:避免点在已有选区边缘、单词中间或空行缩进上;优先点行首空白处、行尾换行符前,或纯空格段。远程桌面下 Alt+Shift+拖拽 常被系统劫持,可改用命令面板:Ctrl+Shift+P → 输入 Column Selection 手动开启列编辑。
Ctrl+D 就会把你带偏。











