Sublime Text 需手动配置 reStructuredText 插件才能支持高亮、补全和语法识别,仅官方 reStructuredText 包(guillermooo 维护)完整覆盖核心语法;补全推荐 Restructured Text (RST) Snippets;.txt 文件需手动绑定语法;校验与预览依赖外部工具如 restructuredtext-lint 和 rst2html.py。

reStructuredText 在 Sublime Text 里不是开箱即用的,得手动配。配好了才能高亮、补全、校验,否则打开 .rst 文件就是一片白底黑字——连标题下划线都分不清颜色,写文档时极易出错。
装对插件:只认 reStructuredText 这一个包
别搜 “RST Highlight”“rst-mode” 或 “Sphinx Highlight”,那些要么已停更,要么只做半套功能(比如只高亮不识别指令)。真正能覆盖 .. note::、:doc:`xxx`、标题下划线语法、字段列表等全部核心语法的,只有官方维护的 reStructuredText 插件(GitHub 仓库名:restructuredtext,作者 guillermooo)。
- 先确保已装
Package Control(没装就Ctrl+Shift+P→ 输入Install Package Control回车) -
Ctrl+Shift+P→ 输入Package Control: Install Package→ 等列表加载完 → 输入reStructuredText(注意大小写和空格,不能少字母)→ 回车 - 部分 Sublime Text 4 版本需重启才生效;重启后打开任意
.rst文件,右下角应显示reStructuredText,且=和-标题线、.. warning::块会着色
补全是刚需:优先装 Restructured Text (RST) Snippets
sublime-rst-completion 功能全面但快捷键固化,改不了;而 Restructured Text (RST) Snippets 提供可配置的 Tab 补全,尤其适合表格、标题升降级、角色插入等高频操作。
- 同样通过
Package Control安装,搜索关键词Restructured Text (RST) Snippets(名字带括号和空格,别漏) - 装完后,在
.rst文件里输入title+Tab就能生成带下划线的标题结构;输入table+Tab可快速建网格表 - 如需修改快捷键(比如避免和
Ctrl+Shift+T恢复标签页冲突),进Preferences → Key Bindings,在右侧用户文件里加自定义映射,例如:{"keys": ["ctrl+alt+h"], "command": "rst_snippets_heading", "args": {"level": 1}}
语法绑定别乱动:.txt 文件要按需切换
很多 Sphinx 项目把 RST 写在 README.txt 或 index.txt 里,但 Sublime 默认把所有 .txt 当纯文本处理。全局改成 RST 语法会导致普通日志、配置片段也误着色,反而干扰阅读。
- 临时切换:打开
.txt文件 → 点右下角语法名(如Plain text)→ 选Open all with current extension as… → reStructuredText(仅本次会话生效) - 精准绑定单个文件:右键该
.txt文件 →Settings – Syntax Specific→ 加入:{"syntax":"Packages/reStructuredText/reStructuredText.sublime-syntax"}(路径必须一字不差,sublime-syntax后缀不能丢) - 千万别在
Preferences → Settings – Syntax Specific里全局改.txt的默认语法,否则所有文本文件都会崩
校验和预览:靠外部工具,插件不代劳
Sublime 插件本身不做语法校验或 HTML 预览——它只负责编辑体验。真要检查 RST 是否写错(比如缩进不对导致 .. code-block:: 不渲染),得靠命令行工具。
- 安装
restructuredtext-lint:pip install restructuredtext-lint,再配合SublimeLinter插件实现实时报错(错误信息如Unexpected indentation会标红行号) - 预览 HTML:终端执行
rst2html.py yourfile.rst out.html,或用 Sphinx:sphinx-build -b html source _build/html;插件无法替代这个流程 - 别信“一键预览”类插件,它们多数调的还是本地
rst2html或sphinx-autobuild,本质是封装命令,不是内置能力
.. admonition::)后必须空一行,且内容缩进必须严格一致——这类问题插件不报错,只能靠 restructuredtext-lint 或构建时暴露。


















