跳至内容

NvChad (Neovim) 中的 vale

简介

vale.sh 是为技术撰稿人提高他们的语音和风格一致性而提供的一个重要的开源项目。它可以在几乎所有主要的操作系统平台(Linux、macOS、Windows)上与多种编辑器一起使用。您可以通过访问 vale.sh 网站了解更多关于该项目的信息。本指南将引导您将 vale 添加到 NvChad 中。由于它包含在用于安装的 Mason 包中,因此过程并不太困难,尽管确实涉及一些小的编辑和配置才能使其正常工作。需要明确的是,NvChad 实际上是编辑器 Neovim 的配置管理器,因此从现在开始,将使用 nvim 作为参考。

先决条件

  • 熟悉 NvChad 2.0 会很有帮助
  • 能够使用您喜欢的编辑器从命令行更改文件。(vi 或您喜欢的其他编辑器)
  • nvim-lint 插件已正确安装在 NvChad 中。

安装 nvim-lint

nvim-lint 插件通过纠正代码或内容的语法和语义部分,为在编辑器中插入linter 提供了支持。

要安装 nvim-lint 插件,只需在 lua/plugins 文件夹中创建一个 nvim-lint.lua 文件;当 Neovim 实例下次启动时,它将被集成到配置中。

文件内容如下

nvim-lint.lua
return {
 {
  "mfussenegger/nvim-lint",
  enabled = true,
  event = "VeryLazy",
  config = function()
   require("lint").linters_by_ft = {
    markdown = { "markdownlint", "vale" },
    yaml = { "yamllint" },
   }

   vim.api.nvim_create_autocmd({ "BufWritePost" }, {
    callback = function()
     require("lint").try_lint()
    end,
   })
  end,
 },
}

此配置文件设置为与 markdown 代码一起使用,但可以根据项目网站上可用的 linter 进行修改或扩展。

完成更改后,退出并重新进入 NvChad 以安装插件并导入配置。

使用 Mason 安装 vale

通过 Mason 在 NvChad 中安装 vale,只需几个额外的步骤即可使包保持最新。在 nvim 中定期运行 Mason 会显示您是否有需要安装的更新,并允许您从那里更新它们。安装 vale 后,这包括 vale。让我们开始运行 nvim 来打开一个空文件,然后使用 Shift + : + Mason 进入命令模式,这应该会显示一个与此类似的界面。

vale_mason

与查看整个软件包列表相比,让我们使用菜单项 4 将列表限制为 linter。按 4,然后在列表中向下滚动直到找到 vale,将光标放在该行上,然后按 i 进行安装。您的列表现在应该显示 vale 已安装。

vale_mason_installed

配置和初始化 vale

您可以使用两种方法来配置 vale。您可以从以下两个选项中选择您喜欢的一种。一种方法是在 vale 二进制文件的路径内创建配置文件,然后将它们移动到您的主文件夹;另一种方法是直接在您的主文件夹中创建配置文件。它们都可以正常工作。第二种方法需要的手动步骤较少,但需要 vale 二进制文件的长路径。

技巧

如果您想隐藏您的“styles”文件夹(如下所示),在创建 .vale.ini 文件时稍微修改其内容,将“StylesPath”选项从“styles”更改为隐藏名称,例如“.styles”或“.vale_styles”。示例:

StylesPath = .vale_styles

仅安装 vale 是不够的。您还需要一些额外的项目。首先,您需要一个 .vale.ini 文件,该文件将放在您的主文件夹的根目录下。接下来,您需要使用 vale sync 生成“styles”目录。

如果您在此路径下(~/.local/share/nvim/mason/packages/vale/)的 vale 二进制文件路径中,您可以简单地在此处创建 .vale.ini 文件,生成“styles”目录,然后将两者都移动到您的主文件夹根目录 ~/。使用来自 vale.sh 网站的配置实用程序可以轻松创建 .vale.ini 文件。在这里,选择“Red Hat Documentation Style Guide”作为基本样式,选择“alex”作为补充样式。使用“alex”是可选的,但有助于您捕获和修复性别化的、两极分化的或与种族相关的词语等,这很重要。如果您选择这些选项,您的屏幕应该如下所示:

vale_ini_nvchad

只需复制底部的内容,使用您喜欢的编辑器创建 .vale.ini 文件,然后粘贴您复制的内容。

您需要创建“styles”文件夹。通过运行带有 sync 命令的 vale 二进制文件来完成此操作。同样,如果您正在从 ~/.local/share/nvim/mason/packages/vale/ 目录执行此操作,只需执行:

./vale sync

完成后,这将显示以下内容:

vale_sync

.vale.inistyles 文件夹复制到您的主文件夹的根目录。

cp .vale.ini ~/
cp -rf styles ~/

如果您希望避免复制文件,而只是想在您的主目录中创建它们,您可以在 ~/ 目录下使用此命令:

首先,使用 vale.sh 网站在您的主文件夹中创建 .vale.ini。同样,选择“Red Hat Documentation Style Guide”作为您的基本样式,选择“alex”作为补充样式。然后将内容复制到 .vale.ini 文件中。

vale_ini_nvchad

接下来,运行 vale sync 命令。由于您在主目录中,您将需要二进制文件的完整路径:

~/.local/share/nvim/mason/packages/vale/vale sync

vale_sync

在这种情况下,无需复制文件,因为它们将在您的主目录根目录下创建。

lint.lua 文件的更改

还有最后一步。您需要更改 ~/.config/nvim/lua/configs/ 中的 lint.lua 文件,并添加 vale linter。

使用上面显示的示例将 vale 添加到 markdown 文件可用的 linter 中,有必要将新的 linter 添加到已存在的字符串中。

markdown = { "markdownlint", "vale" },

完成后,您的文件将看起来像这样:

require("lint").linters_by_ft = {
  markdown = { "markdownlint", "vale" },
  yaml = { "yamllint" },
}

vim.api.nvim_create_autocmd({ "BufWritePost" }, {
  callback = function()
    require("lint").try_lint()
  end,
})

结论和最终想法

现在正常启动 nvim 将会调用 vale,您的文档将根据您偏好的样式进行比较。打开现有文件将启动 vale 并显示所有标记的项目,而启动新文件在插入模式下将不会显示任何内容。当您退出插入模式时,您的文件将被检查。这样可以避免屏幕过于拥挤。vale 是一个出色的开源产品,与许多编辑器都有很好的集成。NvChad 也不例外,虽然要使其运行起来需要几个步骤,但这个过程并不难。

作者:Steven Spencer

贡献者:Franco Colussi, Krista Burdine, Serge, Ganna Zhyrnova