Kakoune 用于开发 Fuchsia

Kakoune 受 vim 启发,是一种模态文本编辑器,如需了解为什么您可能想要使用 vim 或任何其他编辑器或 IDE,请参阅 why-kakoune

行号

将以下代码添加到 kakrc 以启用相对行号(请注意,这等同于同时设置了 numberrelativenumber 时的 vim,这意味着主光标所在的行会显示绝对行号)。

add-highlighter global/ number-lines -relative

移除了绝对行号的 -relative

插件管理器

plug.kak 是一个受 vim-plug 启发的插件管理器。建议您使用此方式安装和管理插件。如需查看安装和使用说明,请参阅 GitHub 自述文件。

添加插件的基本工作流程如下:

  1. 将配置添加到 kakrc,用于命名和配置您要安装的插件。
  2. 重启 Kakoune 以重新加载 kakrc
  3. 运行 :plug-install 以安装该插件。

缩进和对齐

缩进和对齐的推荐设置是组合使用对 editorconfig 的内置支持和 smarttab.kak 插件。当然,这依赖于位于 Fuchsia 检出根位置或上方的 .editorconfig 配置文件。将以下代码行添加到 kakrc,然后安装 smarttab.kak 插件:

plug "andreyorst/smarttab.kak" defer smarttab %{
    set-option global softtabstop 4
}

hook global BufOpenFile .* %{
    editorconfig-load
    autoconfigtab
}
hook global BufNewFile .* %{
    editorconfig-load
    autoconfigtab
}

请注意,退格键始终会在缩进上下文中移除一个缩进的空格,而 softtabstop 的值仅会影响在对齐上下文中删除的空格数量。建议默认值为 4;其他替代方案包括:

  • %opt(indentwidth) 以使用 indentwidth 的值,或者
  • 非常大,使得所有对齐空格都被删除,只需一个退格键输入。

LSP 客户端

kak-lsp 是使用 Rust 编写的 LSP(语言服务器协议)客户端。如需查看安装说明,请参阅 GitHub 自述文件。

默认的 kak-lsp.toml 运行的是 clangd(对于 C 和 C++)、gopls(对于 Go)和 rustup which rust-analyzer(对于 Rust)。请修改 TOML 配置文件,以进行任何必要的更改。

至少应添加以下配置行,以进入 LSP 模式,通过该模式可以访问所有 LSP 功能。

map global user l %{:enter-user-mode lsp<ret>} -docstring "LSP mode"

特定于文件类型的配置

FIDL

第一个包含 FIDL 支持的发布版本是 v2022.08.11。运行 kak -version 以验证您是否正在运行此版本或更高的版本。如果您运行的是旧版本,替代方案包括:

  1. 从源代码编译;或
  2. 在任意位置保存 fidl.kak 的副本,并从 kakrc 中获取它。例如,如果数据保存在 kakrc 旁边,则可通过以下方式获取来源:

    source "%val(config)/fidl.kak"
    

    这之所以有效,是因为 %val(config) 会扩展为可用于找到 kakrc 的路径。

FIDL 文件类型支持包括语法突出显示和缩进。自动格式化程序唯一未实现的缩进行为是表和联合字段的冒号对齐。