开发者生态
morning
Emacs 31:Markdown-ts-mode 非官方指南
摘要
Intro So, Emacs 31 has been released, and a lot of shiny new stuff is there, ready for us to play with. You probably heard of this new markdown-ts-mode and decided to check it out. And guess what? On ...
mode
this
and
you
the
with
not
Emacs
use
need
2026-08-28
1 阅读
约6分钟阅读
RahulMJ
字号:
简介 那么,Emacs 31 已经发布了,并且有很多闪亮的新东西可供我们使用。您可能听说过这个新的 markdown-ts-mode 并决定检查一下。你猜怎么着?在 Emacs 版本 31 上,这被标记为实验模式。这意味着什么?你应该使用它还是不应该使用它?这准备好了吗?这只是一个模式的草图吗?将这篇文章视为启动和运行此模式并帮助您找到这些问题答案的快速指南。它的特点在哪里?这是一个实验模式吧?您需要选择加入,因此可能并非所有内容都能完美运行,并且需要更多测试和反馈。也就是说,不要让这个标题误导您。这并不意味着该模式在功能方面还为时过早。正如您将看到的,这是一个功能非常丰富的模式。此模式已经涵盖了所有 https://commonmark.org/ 规范,以及大多数 https://github.github.com/gfm/ ,还有一些额外的功能,例如非 ts-mode 的代码块,例如 elisp 、目录实用程序以及与外部转换器的接口,例如 pandoc 和 gfm 。在深入研究之前,您可能需要一些帮助来打开此模式。树保姆很棘手。这甚至可能是您第一次接触树保姆,因此快速“安装指南”已列入我们的议程。它在哪里?我需要安装该模式吗?实验意味着 Emacs 默认情况下不启用该模式,因此它不会等待您简单地打开 .md 文件或使用 M-x markdown-ts-mode RET 调用它。您需要加载这个库。与往常一样,在 Emacs 上,做任何事情都有不止一种方法,我是 use-package 的忠实粉丝,所以我倾向于使用它来组织我的 init 文件。这是我建议的初始设置:或者如果您将 use-package 保留在您的工具带之外:现在模式和 x(不错的额外好东西)库都已加载,您可以简单地使用它访问您的 Markdown 文件。如果您想在不修改自己的配置的情况下进行试验,请执行以下操作: 将上述内容保存在诸如testing.el 之类的文件中。使用 emacs -Q --load 'testing.el' 调用 emacs。现在您已经完成了一个带有测试场地设置的裸 Emacs 会话。这就是我将在本指南的其余部分中使用的内容。重要提示:无需下载此软件包或将其添加到您的软件包管理器中。 MELPA 存储库(现在已经非常旧且已存档)将拒绝安装在 Emacs 31 及以上版本上,并且功能非常非常差。如果您使用它,则您没有使用新的内置 markdown-ts-mode 。正确的?我们继续吧。打开我们的第一个 Markdown 文件 为了让您“看到我所看到的”,我们需要一些图片。如果这是您第一次使用基于树保姆的模式,请允许我警告您:虽然树保姆很棒、速度快且功能丰富,但它有自己的一组任务需要完成,如果需要帮助,可能还需要调试技能。我将尝试在这里介绍一些内容;我肯定会忘记其他人。对于本指南,我将使用此测试文件。托管它的存储库是我们的实验室。那里没有代码,请记住,所有代码都在 Emacs 本身中。现在继续打开 test.md 文件。重要提示:此时,可能会发生很多事情。如果您的系统中安装了 markdown 语法,则该文件已打开。不过,正如我在这里一样,您可能会收到这样的提示:这意味着 Emacs 尚未在我的系统中找到 markdown 语法,在本例中是 ~/.emacs.d/tree-sitter/ (这是我使用 emacs -Q ... 启动 Emacs 时的默认设置)。 Emacs 将提供安装它,这意味着从 markdown-ts-mode 源代码中已定义的存储库下载并编译它。让我们用 y 安装它。 Emacs 将克隆语法存储库,对其进行编译,然后继续执行第二个语法。是的,Markdown 使用两种语法:主要语法和用于内联解析的语法。我将允许 Emacs 使用 y 安装第二个。成功!您应该看到什么:如果没有,如果出现问题,您应该检查以下内容:Emacs 是否使用 tree-sitter 标志进行编译?使用 M-: (featurep 'treesit) RET 并检查它是否返回 t 。您是否有用于“编译”语法的工具,例如 make 、 gcc 等? Tree-sitter 在你的发行版中需要一个包,通常名为 tree-sitter-cli,它提供了一个 tree-sitter 二进制文件,你可以使用 tree-sitter --version 检查是否有它。这是所有树守护者模式中常见的令人头疼的问题。许多人不喜欢编译自己的语法,而是使用他们信任的地方的一些编译文件,例如他们自己的发行版存储库,或具有数百个预编译语法的包。我不会深入探讨它;获取语法的方法有很多,在本指南中我将坚持“自己构建”。看,我在那里欺骗了你。我告诉过你你应该看到这一点,但实际上,“你看到我看到的了吗”应该是这样的:我们在这里提供完整的文件,其中有几个默认主题,以便你可以比较你的设置是否完整。那么,发生什么事了
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱