ctrl+d 不是跳词而是按光标处取词并严格匹配,受 word_separators 影响;应先手动双击选中完整标识符再按 ctrl+d,配合 aa 关闭大小写、ctrl+k+d 跳过、ctrl+u 撤销,列操作用 ctrl+alt+↓ 需统一缩进和关闭软换行,home/end 才是稳准行首尾定位,真正批量加光标用 ctrl+alt+g。

Ctrl+D 为什么跳不到想要的词位置
因为 Ctrl+D 不是“跳词”,而是“按当前光标所在位置取词 + 严格匹配”。第一次按,Sublime 自动双击光标处——但它判断“一个词”的依据是 word_separators 设置(默认含 _、.、( 等),不是你肉眼看到的“整个变量名”。光标停在 user_id 中间,可能只取到 _id;停在 api_timeout 开头前空格后,可能取到空格+变量名,后续匹配全崩。
真正可控的做法是:先手动双击选中目标标识符(比如完整 timeout_ms,不带引号、空格、点号),再按 Ctrl+D。这样它才严格按你选中的文本去搜,不会被边界干扰。
- 大小写不一致?右下角点
Aa关闭大小写敏感 - 想跳过某处(比如 JSON 字符串里的同名字段)?按
Ctrl+K松手,再按Ctrl+D - 误按太多光标?按
Ctrl+U撤销上一次光标添加(不是撤销输入)
用 Ctrl+Alt+方向键在列级位置加光标,不是跳词
Ctrl+Alt+↓(Windows/Linux)或 Cmd+Option+↓(macOS)不是跳词,而是“在当前列向下逐行找可编辑字符,加光标”。典型场景:把多行 name = 的等号对齐后,光标批量落到每个 = 上——但前提是每行该列位置真有 =,不能是空格或制表符。
失败常见原因:
- 某行该列是缩进空格 → 光标直接跳到该行行尾
- 软换行开启 → 物理列和视觉列错位,拖不准
- 用了非等宽字体 → 矩形选择歪斜,
Ctrl+Alt+↓找不到对齐点
安全做法:先 Ctrl+Shift+P → 输入 Convert Indent to Spaces 统一缩进,关掉软换行,再操作。
Home / End 键才是真正的“跳行首/行尾”同步控制
多光标状态下,Home 和 End 是最稳的行级定位方式,且行为明确:
- 按一次
Home:所有光标跳到各自行的**缩进起始处**(即第一个非空白字符前) - 再按一次
Home:所有光标跳到**真正行首**(含缩进空格) - 按
End(Windows/Linux)或Cmd+→(macOS):所有光标落到**行尾换行符前**,包括空行
注意:→(右方向键)在多光标下会逐字符移动,容易卡在行尾空格里;而 End 直接到位,不依赖当前光标在哪。要批量在行尾加 ;,必须用 End 或 Cmd+→,不是连按 →。
列选择(Alt+拖拽)和跳词完全无关,别混用
列选择是矩形块选,靠鼠标坐标或 Ctrl+Alt+方向键 定义区域,跟单词语义毫无关系。它不管你是要改变量名还是加注释,只认“第 N 列第 M 行有没有字符”。所以:
- 不能用它“跳到下一个
if”,那是Ctrl+F的事 - 列选状态下
Ctrl+D和Ctrl+Shift+L全部失效,必须先按Esc退出 - 空行对应列无字符,列选择自动断开,光标不会跨过去
真正需要“跳词+多光标”的场景,90% 应该用 Ctrl+Alt+G(Win/Linux)或 Ctrl+Cmd+G(macOS)——它不依赖光标位置,只要文档里有匹配项,就全加光标。但前提是你已手动选中纯标识符,且关闭了正则模式(右下角 .* 没亮)。











