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的翻译,删除第一级标题:读者。
- Helix配置选项:https://docs.helix-editor.com/configuration.html (opens new window)
- dprint Markdown选项:https://dprint.dev/plugins/markdown/config/ (opens new window)
从这里开始,您应该拥有撰写完美Markdown文档并感到非常棒的一切所需。有趣的是,所有内置的LSP都遵循相同的过程。向Helix团队大声致敬,我期待在这个编辑器中花费很多时间。
Happy Coding!