Helix:Markdown设置 - Bacchus Jackson(BJax)- Medium

Helix编辑器徽标来源 https://github.com/helix-editor/helix (opens new window)

Helix非常棒,现在几乎没有必要赞美它了。然而,对于所有新工具,都会有一些困难。当你遇到问题时,没有一打文章、StackOverflow和Reddit帖子的支持,总是很困难的。因此,我想为集体知识库做出贡献!

问题是什么? #

所以你已经设置好了你的新的精美Helix编辑器,也许你甚至已经成功地获得了一个编辑代码的稳定工作流程。如果你来自Neovim,你正在适应快捷键,但到目前为止你喜欢它的感觉。你有一个很棒的主题。 你挑选出来的东西,现在开始感觉像家一样。

你正在做事情,努力奋斗,然后你打开你的 README.md,你被这个击中了... 你内心有点儿死掉了。

没有语法高亮的终端截图

Helix应该开箱即用!我的花哨高亮在哪里,为什么我保存后表格格式没有生效?也许我应该回到Neovim,我几年前设置了所有这些,那边的东西只是正常工作......

等一下!别走!我将与你分享我在这个旅程中学到的一切,这样你就不必像我一样挣扎,翻阅文档和谷歌。

步骤0:主题设置 #

如果你还没有一个好的主题设置,你可能会看到一些奇怪的高亮。如果你是在2023年或之后阅读这篇文章,你将能够利用一些内置主题。

打开helix,输入 :theme <tab>,你可以按tab键循环浏览主题,如果你有一些内容打开,你将实时看到应用的主题!找一个你喜欢的主题。 ## 步骤1:Marksman LSP 设置

GitHub 仓库:https://github.com/artempyanykh/marksman (opens new window)

这个步骤有点可选,但我喜欢在纯文本 Markdown 中使用一些炫酷的 LSP 功能。我能说什么呢?作为一个被宠坏的开发者,只要有 LSP,我就会使用它。

这个步骤很容易,因为 Helix 内置支持 LSP,这在从 Neovim 世界过来的人看来是非常被低估的。你需要做的唯一一件事就是确保二进制文件在你的 PATH 中。至于其他的,Helix 会自动处理。

如果你不使用 brew,则使用其他软件包管理器获取 marksman 或从源代码安装。

brew install marksmanhx --health markdownConfigured language server: marksmanBinary for language server: /opt/homebrew/bin/marksmanConfigured debug adapter: NoneHighlight queries: ✓Textobject queries: ✘Indent queries: ✘

仅仅这样(因为 Helix 很棒)就能让我们获得语法高亮。 ## 第二步:格式化器

如果你来自Web开发领域,你可能听说过Prettier (opens new window)。它支持许多不同的语言,并且通常表现出色。有无尽的配置选项,可以让它按照你想要的方式执行。

然而,有一个新来的dprint (opens new window),用Rust编写。简单来说,它非常快速且可扩展。如果你是一个“Rust,哦?说不多了”的人,就继续阅读吧。如果你想要深入了解,请务必去查看该项目,并不要忘记在GitHub上点赞!

Helix的格式化非常直接。 运行以下命令,并删除一级标题:rward way。你告诉它要运行的二进制文件,确保它在PATH中,就这样。

brew install dprintdprint init -c ~/.dprint.jsondprint check example.md

注意:如果你没有全局配置或项目级配置,该命令将失败。

我喜欢在全局级别上有一个通用配置,然后逐个案例地有一个更具体的配置。通常,我偏好的Markdown格式设置不会改变,所以全局配置对我来说很好用。

请查看https://dprint.dev/plugins/markdown/config/ (opens new window)获取配置选项,Markdown的选项并不多。

我的全局dprint配置如下:

{  "markdown": {    "lineWidth":120,  },  "excludes": [],  "plugins": [    "https://plugins.dprint.dev/markdown-0.16.1.wasm"  ]}

最后一步是更新语言配置,调用dprint二进制文件进行格式化!--stdin标志由dprint定义,用于接受标准输入中的文件,格式化并输出到标准输出。由于它可以进行格式化操作,所以 在多种语言中使用时,它需要一个参数md来指定。

# languages.toml[[language]]name = "markdown"formatter = { command = "dprint", args = ["fmt", "--stdin", "md"]}

现在在helix中输入:format:fmt,并且哇!眨眼之间!格式良好的markdown表格如此令人满意。

显示格式化markdown的终端截图

步骤3:自定义 #

如果您希望在保存时运行格式化并且具有换行,将auto-format = true添加到languages.toml中。

从这里开始,您可以检查相应的配置选项文档,但我会分享一些值得注意的选项。如果您想在一定数量的字符后强制换行,那将在您的.dprint.json配置文件中。

我个人更喜欢将标尺作为建议而不是硬性规定。您可以将rulers = [120]添加到languages.toml中。

在未来的文章中,我将介绍如何进行linting,以捕捉像第16行上跳过的标题级别这样的问题,适用于那些眼尖的人。 以下是Markdown的翻译,删除第一级标题:读者。

从这里开始,您应该拥有撰写完美Markdown文档并感到非常棒的一切所需。有趣的是,所有内置的LSP都遵循相同的过程。向Helix团队大声致敬,我期待在这个编辑器中花费很多时间。

Happy Coding!