nvim cspell
太好了!下面是为你量身定制的 完整 Neovim + C++ 老项目拼写检查方案总结,支持 离线安装、全代码拼写检查(包括变量名)、命令式集成,并兼容 LazyVim 架构。
✅ Neovim 拼写检查解决方案(全面 + 离线可用)
🎯 功能目标
在 Ubuntu + Neovim(LazyVim)中实现:
- ✅ 检查 注释 / 字符串 / 变量名 / 函数名 拼写错误
- ✅ 手动运行
:SpellAudit
查看结果 - ✅ 离线可用
- ✅ 项目级忽略词词典支持(
.cspell.json
) - ✅ 兼容老旧 C++ Makefile 项目
🧱 基础工具:使用 cspell
cspell
是一个 CLI 拼写检查工具,跨平台、可离线、支持源码级拼写审查。
🧩 步骤一:离线安装 cspell
在联网机器上执行:
npm install -g cspell
然后将安装目录复制到目标机器:
# 查询全局安装路径
npm root -g
npm bin -g
将这两个目录(通常是 ~/.npm-global/lib/node_modules
和 ~/.npm-global/bin
)复制到 Ubuntu 离线目标机相应目录,然后设置:
export PATH="$HOME/.npm-global/bin:$PATH"
确认:
cspell --version
🧩 步骤二:添加 Neovim 命令 :SpellAudit
创建文件:
nvim ~/.config/nvim/lua/plugins/cspell-audit.lua
填入内容:
-- 为 LazyVim 添加 SpellAudit 命令
vim.api.nvim_create_user_command("SpellAudit", function()local cmd = "cspell '**/*.{c,cpp,h,hpp}' --no-color"vim.cmd("tabnew") -- 新标签页vim.cmd("term " .. cmd) -- 执行 cspell
end, { desc = "Run cspell on project" })
⚠️ 无需 return,也无需注册插件名,LazyVim 会自动加载。
🧩 步骤三:项目拼写词典 .cspell.json
在项目根目录创建 .cspell.json
:
{"version": "0.2","language": "en","words": ["argc","argv","util","cmd","ptr","ctx","bool","recv","init","uint","todo","stdin","stdout","stderr"],"ignorePaths": ["build","bin","third_party","**/*.o","**/*.a"],"files": ["**/*.{c,cpp,h,hpp}"]
}
✅ 可以根据你项目常用缩写随时添加单词,防止误报。
🧪 使用方法
在项目目录中运行 Neovim,执行命令:
:SpellAudit
即可打开新标签页终端,显示拼写错误:
src/main.cpp:42:10 - Unknown word (recieve)
src/net.h:23:15 - Unknown word (tehCount)
📌 可选增强(按需再做)
功能 | 实现建议 |
---|---|
跳转拼写错误 | 结合 quickfix / Telescope |
自动保存时检查 | autocmd BufWritePost *.cpp silent! SpellAudit |
结果转诊断显示 | 可用 vim.diagnostic.set() 转换(可继续要我帮你实现) |
✅ 文件结构一览
~/.config/nvim/
└── lua/└── plugins/└── cspell-audit.lua ← 拼写命令
/project-root/
└── .cspell.json ← 项目词典
✅ 离线使用说明
只需确保:
node
+npm
安装过一次(可用 nvm 安装后打包)cspell
的bin
和lib
被复制到目标 UbuntuPATH
中包含 cspell 所在目录
你在完全离线状态下,也能运行 :SpellAudit
扫描拼写错误。
是否还需要我:
- 帮你把 cspell 的错误转为 Neovim Quickfix?
- 或集成进 Trouble.nvim / Telescope?
可以继续扩展 💪