跳到内容

Marksman - 代码助手

在为 Rocky Linux 起草文档时,Marksman 是一个有用的工具。它允许轻松输入定义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集成到编辑器的语言服务器配置中,您需要通过添加新的 LSP 来编辑local servers字符串。

使用以下命令在 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此按键插入用于将图像插入文档的 markdown 结构,格式为![alt text](path)。 请注意,可以使用服务器提供的自动完成功能来写入路径。
link此按键创建[text](url)链接的 markdown 标签结构。 同样,如果链接引用了工作目录中的文件,您将能够使用自动完成功能,并且服务器将检查引用的正确性。
list键入此按键允许输入三个项目的列表,以开始创建编号或无序列表
q此字符允许插入引用的标签>,后跟一个空格,并将光标定位在要写入引用的位置
s此字符激活许多可能性,包括插入四个波浪号并将光标放置在中间,用于编写带删除线的文本strikethrough
sup此按键插入上标标签。 商标TM
sub此按键插入下标标签。 注释1
table此按键可以快速创建表格结构,并允许您从许多起始结构中进行选择
code通过将两个反引号放置在光标所在的位置,将代码块内联插入,并将光标放置在两个反引号的中心。
codeblock插入三行,两行带有三个反引号,一行为空白,您可以在其中插入代码块。 请注意,它还插入字符串language,该字符串将使用您在块中使用的语言进行编译。

代码块声明

Markdown 代码规则建议始终声明块中使用的代码,即使没有突出显示功能以供正确解释。 如果其中的代码过于通用,建议使用“text”来声明它。

用于 Markdown 标记快捷键的激活键还包括其他组合,您可以在使用语言服务器时发现它们。

结论

尽管不是严格必需的,但随着时间的推移,这个语言服务器可以成为您编写 Rocky Linux 文档的绝佳助手。

通过使用它并因此记住用于插入 Markdown 代码符号的主要按键,它将通过允许您将注意力集中在内容上,从而实现有效地更快地写作。

作者:Franco Colussi

贡献者:Steven Spencer,Ganna Zhyrnova