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

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.lryc.cn/news/602200.html

相关文章:

  • 打通视频到AI的第一公里:轻量RTSP服务如何重塑边缘感知入口?
  • 中国自然灾害影响及损失数据
  • Ubuntu 安装redis和nginx
  • 【JSqlParser】sql解析器使用案例
  • jimfs:Java内存文件系统,脱离磁盘IO瓶颈利器
  • 全球Wi-Fi室外天线市场洞察2024–2032:规模、驱动因素与技术演进
  • Mybatis_4
  • Focusing on Tracks for Online Multi-Object Tracking—CVPR2025多目标跟踪(TrackTrack)
  • Ethereum:Geth运维实战,geth export与geth import命令的实用性深度评估
  • 使用 Qt Installer Framework(IFW)进行打包
  • 网络安全第14集
  • 8.1 ESP32CAM 服务器 网络摄像头
  • 【mysql】—— mysql中的timestamp 和 datetime(6) 有什么区别,为什么有的地方不建议使用timestamp
  • 深入探索Linux:忙碌的车间“进程”间通信
  • 【Linux】基本指令(2)
  • Linux DNS解析1--终端通过网关或者路由器进行域名解析的原理
  • WAIC 2025深度解析:当“养虎”警示遇上机器人拳击赛
  • 设计模式(二十二)行为型:策略模式详解
  • 发布“悟能”具身智能平台,商汤让机器人像人一样和现实世界交互
  • 枚举策略模式实战:优雅消除支付场景的if-else
  • 时序数据基座升维:Apache IoTDB 以“端边云AI一体化”重构工业智能决策
  • 企业级JWT验证最佳方案:StringUtils.hasText()
  • 【学习路线】AI开发工程师成长指南:从机器学习基础到大模型应用
  • Ubuntu服务器上JSP运行缓慢怎么办?全面排查与优化方案
  • Python 列表内存存储本质:存储差异原因与优化建议
  • 【Linux | 网络】传输层(UDP和TCP) - 两万字详细讲解!!
  • 二级域名分发源码最新开源版
  • uni-datetime-picker兼容ios
  • 无界设计新生态:Penpot开源平台与cpolar的云端协同创新实践
  • CacheGen:用于快速大语言模型推理服务的 KV 缓存压缩与流式传输