当前位置: 首页 > backend >正文

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 安装后打包)
  • cspellbinlib 被复制到目标 Ubuntu
  • PATH 中包含 cspell 所在目录

你在完全离线状态下,也能运行 :SpellAudit 扫描拼写错误。


是否还需要我:

  • 帮你把 cspell 的错误转为 Neovim Quickfix?
  • 或集成进 Trouble.nvim / Telescope?

可以继续扩展 💪

http://www.xdnf.cn/news/16505.html

相关文章:

  • 基于 OpenCV 与 sklearn 的数字识别:KNN 算法实践
  • 123页PPT麦肯锡49个思维工具和方法论PPT
  • 一个典型的微控制器MCU包含哪些模块?
  • Java Collections工具类
  • 达梦有多少个模式
  • 页面性能优化
  • Java基础-IO流
  • 【灰度实验】——图像预处理(OpenCV)
  • 商用车的自动驾驶应用场景主要包括七大领域
  • 开发指南125-HTML DOM事件
  • 1.gradle安装(mac)
  • RocketMQ入门实战详解
  • clock_getres系统调用及示例
  • 智慧社区项目开发(二)——基于 JWT 的登录验证功能实现详解
  • 分布式高可用架构核心:复制、冗余与生死陷阱——从主从灾难到无主冲突的避坑指南
  • 【Linux篇】进程间通信:进程IPC
  • 负载均衡算法中的加权随机算法
  • kafka开启Kerberos使用方式
  • uniapp_微信小程序_根据胶囊按钮计算出的导航栏高度为什么不是44px?
  • 【Linux】Ubuntu上安装.NET 9运行时与ASP.NET Core项目部署入门
  • 复杂人流场景口罩识别漏检率↓76%:陌讯动态特征融合算法实战解析
  • 开源智能体-JoyAgent集成ollama私有化模型
  • ATF 运行时服务
  • 标准解读——2024 数据资产价值评估指南(正式版)【附全文阅读】
  • ICDC自动化部署方案概述
  • 7.28 错题(zz)史纲 第五章新道路
  • Qt_Gif_Creator 基于Qt的屏幕gif录制工具
  • 灵动画布:快手可灵 AI 推出的多人协作 AI 创意工作台
  • PostgreSQL日志配置全解析:从基础设置到进阶策略
  • 墨者:SQL手工注入漏洞测试(MySQL数据库-字符型)