跳至内容

Marksman - 代码助手

Marksman 是在为 Rocky Linux 起草文档时的有用工具。它允许轻松输入定义markdown语言标签所需的符号。这可以让你写得更快,并减少出错的可能性。

NvChad/Neovim 已包含有助于写作的文本小部件,例如按输入频率索引的常用词重复。此语言服务器包含的新选项将丰富这些小部件。

Marksman 集成到你的编辑器中,通过 LSP 协议 帮助你编写和维护 Markdown 文档,从而提供诸如补全、跳转定义、搜索引用、重命名、诊断等功能。

目标

  • 提高 NvChad 在编写 Markdown 代码方面的生产力
  • 生成符合 Markdown 语言规则的文档
  • 提升你对该语言的知识

要求和技能

  • 对 Markdown 语言有基本了解,建议阅读 Markdown 指南
  • 在使用的机器上正确安装了 NvChad

难度级别 ⭐

阅读时间: 20 分钟

安装 Marksman

语言服务器的安装不会有任何特别的问题,因为它在 Mason 中是原生可用的。直接从状态栏使用以下命令进行安装:

:MasonInstall marksman

该命令将打开Mason界面并直接安装所需的语言服务器。二进制安装完成后,你可以按 q 键关闭Mason屏幕。

然而,它的安装并不包括集成到编辑器中。要启用它,必须将其放在配置文件的 configs/lspconfig.lua 文件中。

集成到编辑器

NvChad 中的 LSP

nvim-lspconfig 插件将语言服务器集成到 NvChad 中。该插件极大地简化了它们在 NvChad 配置中的包含。

lspconfig.lua 文件负责输入使用语言服务器所需的调用,并允许你指定已安装的服务器。要将marksman集成到编辑器的语言服务器配置中,你需要编辑local servers字符串,添加你的新 LSP。

使用以下命令打开 NvChad 中的文件:

nvim ~/.config/nvim/lua/configs/lspconfig.lua

并编辑local servers字符串,完成后它看起来如下:

local servers = { "html", "cssls", "tsserver", "clangd", "marksman" }

保存文件并使用 :wq 命令关闭编辑器。

要检查语言服务器是否已正确激活,请在 NvChad 中打开一个 markdown 文件并使用命令 :LspInfo 查看应用于该文件的语言服务器。在摘要中应该会看到类似以下内容:

 Client: marksman (id: 2, bufnr: [11, 156])
  filetypes:       markdown
  autostart:       true
  root directory:  /home/your_user/your_path/your_directory
  cmd:             /home/your_user/.local/share/nvim/mason/bin/marksman server

 Configured servers list: cssls, tsserver, clangd, html, yamlls, lua_ls, marksman

这表明为打开的文件激活了marksman服务器,并且它自动启动(autostart: true),因为它识别它为 markdown 文件(filetypes: markdown)。其他信息表明用于代码检查的可执行文件路径(cmd:),它使用marksman server模式,并且它使用根目录your_directory进行检查。

根文件夹

“根文件夹”的概念在语言服务器的使用中很重要,因为它需要在文档上执行控制(例如,链接到其他文件或图像),必须对项目有“全局视图”。我们可以说“根文件夹”等同于图形 IDE 中发现的“项目”。

编辑器为打开的文件使用的根目录,也称为“工作目录”,可以使用 :pwd 命令查看。如果它不符合预期,可以使用 :lcd 命令进行更改。此命令仅将工作目录重新分配给该缓冲区,而不会更改编辑器中打开的其他缓冲区的任何设置。

使用 Marksman

完成所有集成步骤后,语言服务器会在每次在编辑器中打开markdown文件时激活。进入INSERT模式后,在输入某些字符时,小部件中将出现新选项,这将帮助你编写文档。在下面的屏幕截图中,你可以看到这些小部件中可用的 markdown 片段。

Marksman Snippets

主要快捷键

语言服务器提供了许多激活写作帮助的快捷方式。这包括快速插入 Markdown 标签、创建链接以及在文档中插入图像。以下是激活各种片段的字符的非详尽列表。

这些片段显示在小部件中,其中还包含其他快捷方式。使用 Tab 键导航小部件以选择marksman提供的片段。

片段
h 允许快速输入标题(h1h6),例如,输入h4并按回车键将插入四个哈希符号和一个空格,光标已就位以输入你的标题。
b 输入此字符可激活使用快捷方式输入粗体文本的功能,插入四个星号并将光标放在中间,从而更快地编写粗体部分。
i 与前一个字符一样,它允许你通过输入两个星号并将光标放在两者之间来选择快速插入斜体文本。
bi 此键插入六个星号,并将光标放在中间,用于编写粗体和斜体文本。
img 此键以 ![alt text](path) 格式插入用于在文档中插入图像的 markdown 结构。请注意,路径的编写可以使用服务器提供的自动补全功能。
link 此键创建 [text](url) 链接的 markdown 标签结构。同样,如果链接指向工作目录中的文件,你将能够使用自动补全,并且服务器将检查引用的正确性。
list 输入此键可输入一个包含三个项目的列表,以开始创建编号列表或无序列表。
q 此字符允许插入一个引用标签 > 后面跟一个空格,并将光标定位在写作引用处。
s 此字符激活了许多可能性,包括插入四个波浪线并将光标放在中间以编写删除线文本。
sup 此键插入上标标签。商标TM
sub 此键插入下标标签。注释1
table 此键支持快速创建表格结构,并允许你从许多起始结构中进行选择。
code 通过在光标所在位置插入两个反引号并将光标置于这两个反引号的中心,来插入内联代码块。
codeblock 插入三行,两行带有三个反引号,一行空白,你可以在其中插入代码块。请注意,它还插入了language字符串,该字符串将使用代码块中使用的语言进行编译。

代码块声明

Markdown 代码规则建议始终声明代码块中使用的代码,即使没有高亮显示功能,以确保正确解释。如果其中的代码过于通用,建议使用“text”进行声明。

Markdown 标签快捷键的激活键还包括其他组合,你可以在使用语言服务器的过程中发现它们。

结论

虽然不是严格必需的,但这个语言服务器随着时间的推移,可以成为你为 Rocky Linux 编写文档的得力助手。

通过使用它并因此记住插入 Markdown 代码符号的主要快捷键,它将能够有效地加快写作速度,让你专注于内容。

作者:Franco Colussi

贡献者:Steven Spencer, Ganna Zhyrnova