不能,Sublime Text 不解析 Git 冲突标记语义,仅视作普通文本;所谓“过滤”实为手动高亮+删除或跳过,无自动识别冲突块边界能力;快速定位并临时隐藏冲突行需用 Find All 搜索 ^<<<<<<<|^=======|^>>>>>>> 正则匹配。

Sublime Text 能不能直接过滤 Git 冲突标记行
不能。Sublime Text 本身不解析 、<code>=======、>>>>>>> 这类标记的语义,它只把它们当普通文本。所谓“过滤”,实际是手动高亮 + 删除或跳过,没有自动识别冲突块边界的能力。
怎么快速定位并临时隐藏冲突行(非删除)
用 Find All 搜 最快,但容易漏或卡顿;配合语法高亮和行号跳转更稳:
- 按
Ctrl+Shift+F(Win/Linux)或Cmd+Shift+F(macOS),输入,勾选 “Whole Word” 和 “Case Sensitive” - 结果面板列出所有匹配行号,点任意一行直接跳转 —— 注意:它只匹配开头,不自动选中整个冲突块(
到 <code>>>>>>>>之间) - 想临时“折叠”冲突块?安装
CodeFold插件后,可手动选中从到 <code>>>>>>>>的整段,右键 → Fold → Fold Selection;再展开时仍需手动选中 - 别依赖 “Find in Files” 全局搜 —— 如果项目里有日志、注释或字符串含类似字符(比如正则表达式
/),会误报
为什么不能靠插件自动清理冲突行
因为 Git 冲突不是格式错误,而是语义状态。删掉 不代表解决,Git 仍认为文件处于未合并状态:
-
Diffy只对比两文件,不接收$BASE/$LOCAL/$REMOTE参数,对冲突块无感知 - 任何 Sublime Text 插件都无法触发
git add—— 这步必须人工执行,否则git status始终显示both modified - 嵌套冲突(比如某分支改了另一分支刚 merge 进来的冲突块)根本无法被正则或插件可靠识别,只会漏删或错删
-
GitSavvy能调git mergetool,但它自己不提供界面,最终还是得靠Sublime Merge打开三路视图
真正该做的:用 Sublime Merge 处理,再回 Sublime Text 编辑
Sublime Text 是编辑器,不是合并工具。复杂多分支冲突下,硬在 Sublime Text 里“过滤”只是拖延问题:
- 先确保已装
Sublime Merge(独立应用,不是插件),运行smerge --version有输出才算装对 - 配置三行命令缺一不可:
git config --global merge.tool sublime_merge、git config --global mergetool.sublime_merge.cmd 'smerge merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED" --wait'、git config --global mergetool.trustPrompt false - 在 Sublime Merge 里点两侧 Local/Remote 上方小三角接受整块,不是在中间 Merged 区手动删 —— 后者不更新 Git 的冲突状态
- 保存后必须切回终端执行
git add <filename>,这步最容易被忽略,尤其多个冲突文件时


















