仓颉语言 Neovim 开发环境配置指南

💡 原文中文,约5300字,阅读约需13分钟。
📝

内容提要

本文介绍在 openEuler aarch64 上配置 Neovim(AstroNvim)的仓颉语言开发环境:安装仓颉 SDK 与 STDX 扩展库,配置环境变量,创建 GCC 运行时库符号链接以解决链接错误,安装 AstroNvim 并配置 cangjie-nvim 插件,实现 LSP 补全、跳转、诊断与格式化,并附常见问题及键位映射。

🔎

延伸解读

环境配置的关键步骤

在 openEuler aarch64 上配置仓颉 Neovim 环境,需先安装仓颉 SDK 和 STDX 扩展库,并正确设置环境变量。特别注意,由于仓颉链接器默认搜索 /lib64,必须创建 GCC 运行时库的符号链接,否则会出现 crtbeginS.o 等链接错误。这些步骤是后续 LSP 功能正常工作的基础。

LSP 功能与键位映射

通过 cangjie-nvim 插件,Neovim 可获得 LSP 支持,包括补全、跳转、诊断和格式化。文章提供了详细的键位映射,如 gd 跳转定义、K 显示文档、<leader>lf 格式化等。这些映射仅在仓颉文件类型中生效,避免了与其他语言冲突,提升了开发效率。

常见问题与排查方法

配置过程中可能遇到链接错误、LSP 不工作、找不到 STDX 等问题。文章给出了具体解决方案:创建符号链接、检查环境变量、手动安装 LSP wrapper 等。此外,快速事件上下文错误已在新版插件中修复,建议保持插件更新。这些排查步骤能帮助开发者快速恢复环境。

Q&A

在 openEuler aarch64 上配置仓颉 Neovim 开发环境需要满足哪些系统要求?

需要 openEuler 2403 SP1 (aarch64) 操作系统,GCC 版本 12.3.1 或更高,Neovim 版本 0.9.0 或更高。

如何安装仓颉 SDK 和 STDX 扩展库?

从官方渠道下载仓颉 SDK (aarch64 版本) 并解压到 ~/.config/cjvs/store/ 目录;从发布页面下载 STDX 的 linux_aarch64_cjnative 版本并解压到 ~/.config/cjvs/stdx/ 目录。

配置仓颉开发环境需要设置哪些环境变量?

编辑 ~/.zshrc,添加:source $HOME/.config/cjvs/store/1.1.0-beta.25/envsetup.sh 和 export CANGJIE_STDX_PATH="$HOME/.config/cjvs/stdx/1.1.0-beta.24/linux_aarch64_cjnative/static/stdx",然后执行 source ~/.zshrc。

遇到链接错误 cannot find crtbeginS.o 该如何解决?

创建 GCC 运行时库符号链接:sudo ln -sf /usr/lib/gcc/aarch64-openEuler-linux/12/crtbeginS.o /lib64/crtbeginS.o,并对 crtendS.o、crtbegin.o、crtend.o 执行相同操作。

如何为仓颉语言配置 Neovim 的 LSP 补全和跳转功能?

安装 AstroNvim 后,创建 ~/.config/nvim/lua/plugins/cangjie-lsp.lua 文件,配置 cangjie-nvim 插件,设置 auto_install = true,并在 LspAttach 自动命令中映射快捷键如 gd 跳转定义、K 显示悬停文档等。

仓颉 Neovim 环境中有哪些常用的键位映射?

常用键位包括:K 显示悬停文档,gd 跳转到定义,gD 跳转到声明,gy 跳转到类型定义,gri 跳转到实现,grr 查找引用,grn 重命名,<leader>lf 格式化文档,<leader>la 代码操作,<leader>li 查看 LSP 信息,]d/[d 下一个/上一个诊断,]e/[e 下一个/上一个错误,]w/[w 下一个/上一个警告。

🏷️

标签

➡️

继续阅读