Sublime Text 多光标编辑不能直接解决 Git 冲突——它不识别冲突标记、不支持三路合并、无法自动清理<<<<<<<等标记,仅能手动删改,且删后仍需显式 git add 才算解决。

多光标编辑根本不能直接解决 Git 冲突
Sublime Text 本身不提供冲突块识别、三路合并或自动标记清理能力。所谓“用多光标删git add前漏掉一个<<<<<<或>>>>>>,commit 就会失败。这不是操作技巧问题,是工具边界问题——Sublime 不是 mergetool。
但多光标能加速冲突后手工清理的三个关键环节
当 Sublime Merge 已完成主合并、你退回 Sublime 编辑最终结果时,多光标确实能省下大量重复操作:
- 批量删除残留冲突标记:选中所有
<<<<<<行,按Ctrl+Shift+L切光标,再按Ctrl+Shift+K(delete_line)一键清空整行 - 统一修复缩进错乱:用
Ctrl+L逐行选中冲突块内所有代码行,再按Ctrl+Shift+L,接着Tab或Shift+Tab整体调齐 - 快速补全缺失分号/逗号:比如 JS 对象里因换行丢失的
,,把光标全停在每行末尾(先End再Ctrl+Shift+L),输入,即可批量追加
Ctrl+D 在冲突文件里选词极易误伤
Ctrl+D默认开启match_whole_word: true和大小写敏感,而冲突标记如HEAD、origin/main常和真实变量名混在一起。双击选中data后连按Ctrl+D,可能跳过data_conflict却选中<<<<<< HEAD里的HEAD——这不是 bug,是匹配逻辑使然。
安全做法:
- 清理标记阶段,优先用正则替换:
^\s*(<<<<<<|=======|>>>>>>).*$→ 空 - 真要用
Ctrl+D,先按Ctrl+K Ctrl+D跳过当前项,避免光标卡在标记行 - 改变量名前,确认当前选区不含冲突分隔符——哪怕只多一个空格,
Ctrl+D也会断开匹配链
列选择(Alt+Shift+拖动)在冲突块里最危险
冲突文本通常缩进不齐、行长短不一,列选择会把光标强行对齐到同一字符列。比如<<<<<< HEAD是 15 字符长,data = {只有 9 字符,拖动时后者光标会悬在行尾空白处,一输内容就覆盖后续代码。
更隐蔽的问题:
- 中文注释或 Unicode 字符会让列定位偏移——Sublime 按字节数而非视觉宽度计算,
中文占 2 或 3 列,但显示只占 1 个汉字位 - 如果某行是纯空行(含空格),列选择会把光标放在空格上,而非行首,导致批量输入时破坏结构
- 列选择状态下
Ctrl+Z无法撤销单次输入,只能整块回退,容易误删
真正需要竖向对齐时,宁可用正则:^(\s*)(\w+) → $1 $2(用空格补足缩进),比手拖可靠得多。


















