必须先布好多个光标再输入,默认值才会同步填入每行对应位置;单光标下直接输只改第一行。常见失效原因包括未按住ctrl/cmd点击、ctrl+shift+l前未选中多行且含换行符、drag_text为true未关闭,以及光标未精准落在插入点。

必须先布好多个光标,再输入,默认值才会同步填入每行对应位置;单光标下直接输,只改第一行。
多光标怎么布才有效
Sublime 不会自动“猜”你要在哪几行填,默认值填充依赖光标是否真实落在目标位置。常见失效原因全是光标没布对:
- 只用鼠标点了几下但没按住
Ctrl(Windows/Linux)或Cmd(macOS),实际只移动了主光标,没新增光标 - 用
Ctrl+Shift+L前没选中多行——它只拆你已选中的换行符,空选或单行选中就只出一个光标 - 选中时漏掉了某行末尾的换行符(视觉上像选中了,其实没覆盖到
\n),结果那行没光标 - 开启了
drag_text(默认开启),Ctrl点击被识别为拖文本而非加光标;需在用户设置里加"drag_text": false
填默认值前,光标得停在正确插入点
填默认值不是“覆盖”,而是“插入”,所以光标位置决定内容插在哪。比如给 JSON 字段补 "" 或 null,光标必须卡在冒号后、逗号前的空白处:
- 如果目标是字段名后统一填
"",推荐先用Ctrl+D选中所有字段名(双击更稳),再按→跳到冒号后,再按→跳过空格和冒号,最后按→或End到值起始位 - 若字段值位置不齐(有的有空格、有的没、有的是
null),Home/End容易错位;更准的做法是用列选择:Alt+Shift+拖拽(Win/Linux)或Cmd+Shift+拖拽(macOS)框出所有值起始列 - 列选择对缩进敏感:混用 Tab 和空格会导致框选偏移,建议先开
View → Draw White Space看清空白符再拖
填的时候别手快按错键
光标到位后,输入默认值看似简单,但几个细节常导致失败:
- 输完第一个字符后立刻按
Esc—— 这会合并所有光标,只剩一个,后续输入只生效一次 - 误按
Enter或Tab:前者把所有行劈成新行,后者可能触发 snippet 补全,打乱节奏 - 想填带引号的字符串如
"default",但提前按了",Sublime 可能自动配对闭合,导致第二对引号出现在错误位置;建议先输内容,再统一加引号 - 填数字序列(如 ID 默认从 1001 开始)不能靠手敲,要用
Ctrl+Shift+P → Insert Sequence,但前提是已布好多光标——否则命令静默失效
正则替换更适合结构化默认值
当目标格式高度一致(比如所有 value: 后都该是 null),正则比手动布光标更稳:
- 打开
Ctrl+H,点亮右下角.*按钮(启用正则) - 查找填:
value:\s*$(匹配value:后所有空白直到行尾) - 替换填:
value: null(注意保留空格对齐) - 别用
value:.*$—— 这会把已有值也删掉,只留默认值 - 混合换行符(
\r\n和\n)可能导致漏替换,操作前先Ctrl+Shift+P → Set Line Endings: Unix
真正卡住人的从来不是“怎么填”,而是“光标有没有真正在那儿”。每次输之前,盯一眼每行是不是都有光标点,比反复撤销重来省三倍时间。











