sublime多光标编辑本质是快捷键实时叠加光标,非固定模式;ctrl+shift+l需选区含换行符才生效,否则仅生成一个光标;ctrl+d依赖双击选词且全字匹配;列编辑须等宽字体与alt+shift拖拽;drag_text开启会导致点击失效,应设为false。

Esc、→、Ctrl+X),所有光标立刻消失,改写就中断了。
Ctrl+Shift+L 拆行光标总只出一个?检查选区是否含换行符
Ctrl+Shift+L 不是“给当前行加光标”,它只做一件事:把「已选中的文本」按 \n 切开,每段末尾放一个光标。失败几乎全因选区没选对。
- 鼠标拖选时最后一行末尾没覆盖到换行符(视觉上像选中了,其实漏了
\n),它就当单行处理,只出一个光标 - 安全做法:先用
Ctrl+L连续点击目标行(每按一次选一行),再统一按Ctrl+Shift+L,确保每行都被显式纳入选区 - 选区末尾带空格或制表符?光标会落在空格后,一输内容就把缩进顶乱;建议先执行
Ctrl+Shift+P→Trim Trailing White Space - 拆完光标不在行首?立刻按
Home,所有光标会同步跳到各行开头(含缩进);再按一次Home,跳过缩进到真正行首
Ctrl+D 选同名变量老跳过?双击+全字匹配是关键
Ctrl+D 默认只匹配完整单词(match_whole_word: true),且严格从当前光标所在词出发向下扫描,不是全局模糊搜。
- 务必双击变量名(如
user_id)再按Ctrl+D,比把光标停在中间更可靠;高亮区域必须干净,不含前后空格、引号或句点 - 变量含下划线(如
api_v2_endpoint)时,_被当分词符,双击可能只选中api;临时解决:在设置里删掉_,或直接用正则\bapi_v2_endpoint\b查找 - 遇到字符串里的同名内容(如
"user_id": "123"),按Ctrl+K再按Ctrl+D可跳过当前匹配项 - 误按太多?
Ctrl+U撤销上一次光标添加(不是撤销输入内容);想彻底退出,直接按Esc
列编辑(Alt+拖拽)输完内容错位?等宽字体+正确组合键是前提
列编辑生成的是矩形选区,不是多光标,它对字体和行长度极其敏感。
- 必须按住
Alt+Shift(Windows/Linux)或Cmd+Shift(macOS)再拖动鼠标;只按Alt或只按Shift无效 - 某行太短?光标会停在该行末尾,不会悬空;但若各行列数不一致(比如有空行或注释行),末尾几行可能根本没光标
- 中英文混排或用了非等宽字体(如系统默认 UI 字体)会导致视觉偏移;切到
Consolas或Fira Code立刻稳定 - 列编辑状态下不能用
Ctrl+D;想切回多光标,必须先按Esc退出列选状态
鼠标点击加不了光标?drag_text 默认开启是元凶
这是 Sublime 默认开启 drag_text 导致的:编辑器优先响应“拖动文本”,而非“添加光标”。
- 必须手动关闭:打开
Preferences → Settings,在用户设置里加一行:"drag_text": false - 点击位置很关键:避免点在已有选区边缘、单词中间或空行缩进处;优先点行首、行尾或纯空格位置
- 远程桌面或某些键盘布局下,
Alt+Tab等系统热键可能拦截Alt+拖动;可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启
最常被忽略的细节是:回车(Enter)在多光标下会在每个光标处插入新行,而不是只在最后一行回车——想换行缩进却把所有行劈开,就是这个原因。











