Sublime中Markdown列表补全需满足三条件:一是语法模式必须为原生Markdown(右下角显示“Markdown”);二是光标须位于列表符号后空格处(如“-␣”或“1.␣”);三是编号列表须严格连续(1., 2., 3.)才能自动递增。

Sublime 中 markdown 语法下列表补全不工作?先确认语法模式
Sublime 不会自动识别文件类型就启用列表补全,它依赖当前视图的语法高亮模式。如果你打开的是纯文本(Plain Text)或未指定语法的文件,Ctrl+Shift+P 输入 Set Syntax: Markdown 手动切换,否则所有列表行为都无效。
常见错误现象:- 或 1. 后按 Enter 没反应,光标直接换行、不续写;或者续写成了空行而非带符号的新项。
- 必须是
Markdown语法模式(右下角状态栏显示Markdown) - 不是
MultiMarkdown或GitHub Markdown插件自带的语法(部分插件覆盖后反而禁用原生补全) - 文件扩展名如
.md或.markdown通常能自动触发,但双击打开的无后缀文件不会
Enter 在列表行末尾不续写?检查是否在行尾且有空格
Sublime 的原生列表续写只在「行末有空格」时生效——不是任意位置按回车,而是光标紧贴符号后空格(比如 -␣ 或 1.␣,其中 ␣ 表示空格),此时按 Enter 才会自动插入新行并复用相同前缀。
如果光标停在 - 后没空格(-|),或停在文字中间(- hello| world),它只会普通换行。
- 正确触发位置:
- |→ 先按Space,变成- |(空格后),再按Enter - 编号列表同理:
1. |→ 空格后按Enter,下一行自动变成2. - 若已输入内容(如
- item one),把光标移到行末(one|),按Enter不会续写;得退格删掉文字末尾再补空格
编号列表自动递增失效?别混用不同数字开头
Sublime 的编号续写逻辑是“延续上一行数字+1”,但它不解析语义,只看上一行开头是否为 ^\d+\.\s。一旦出现非连续、跳号、或混用字母序号(如 a.),后续就不再递增。
常见错误现象:输入 1. first → 回车 → 得到 2. ;但若手动改成 3. third,再回车就变成 3. (不是 4.),甚至可能退化成 - 。
- 保持编号严格递增(
1.,2.,3.)才能持续自动更新 - 避免手动修改编号数字,尤其不要倒填(如先写
5.再补前面) - 如果真要跳号,建议关掉自动续写(见下一条),手动输入更可控
想彻底控制行为?关闭或替换原生补全逻辑
Sublime 原生列表补全是硬编码在 Markdown 语法包里的,无法细粒度配置。如果你常遇到误触发、缩进错乱或需要支持嵌套列表智能对齐,与其反复调试,不如用插件替代。
推荐两个轻量方案:
-
MarkdownEditing:增强型语法包,重写了回车逻辑,支持多级嵌套自动缩进、编号续写更鲁棒,且不破坏原生快捷键 -
AutoFileName配合自定义 snippet:对ul/ol场景,可建 snippet 绑定Tab触发完整结构,比依赖回车更确定 - 禁用原生补全:删掉或重命名
Packages/Markdown/Default.sublime-keymap里含insert_snippet和list的键位绑定(不推荐新手操作)
真正麻烦的不是怎么开功能,而是 Markdown 编辑器普遍把「列表续写」和「段落换行」「代码块缩进」耦合在同一回车行为里——稍一偏离标准格式,整条链就断了。留心光标位置和空格,比找插件更重要。









