编辑摘要:基于 NvChad + rustaceanvim 的 Rust 专用 Neovim 配置。一行命令安装,自带 269 个 snippet、保存自动重跑 cargo、内存布局 hover、断点调试、测试集成,并支持前端 LSP + Prettier。
告别从零配置 Neovim 的痛苦。Clone 即用,3 秒后自动安装所有工具,打开
.rs文件就能写代码。
为什么又是另一个 Neovim 配置?
如果你写过 Rust,你可能经历过这样的循环:
- 兴致勃勃地打开 Neovim
- 开始配置 LSP → 发现 rust-analyzer 和 NvChad 的 on_attach 有冲突
- 配置补全 → coc.nvim 还是 nvim-cmp?还是 blink.cmp?
- 配置调试器 → codelldb 路径在 macOS/Linux/Windows 各不相同
- 配置 snippet → 希望有 Rust 的完整 snippet
- 三小时后……算了,还是用 VS Code 吧
rusty-nvim 就是为了终结这个循环。
开箱即用,零配置启动
curl-fsSLhttps://raw.githubusercontent.com/lisering/rusty-nvim/main/install.sh|bashnvim就这样。安装脚本会检测依赖、备份旧配置、克隆仓库,然后 Neovim 启动后自动完成一切:
启动 nvim ├─ nvdash 启动画面显示 RUSTY ASCII art ├─ lazy.nvim 自动 clone 所有插件 (~30秒) ├─ Treesitter 自动安装解析器: │ ├─ rust, toml, lua │ └─ html, css, javascript, typescript, tsx └─ 3秒后 mason-tool-installer 自动安装: ├─ rust-analyzer, codelldb ├─ stylua, taplo, biome ├─ prettier (HTML/CSS/JS/TS 格式化) ├─ typescript-language-server ├─ tailwindcss-language-server └─ ✅ 完成!打开 .rs 或 .tsx 文件即可使用不需要手动安装 rust-analyzer,不需要手动配 LSP,不需要写一行 Lua。
核心特性
🧠 智能补全:blink.cmp + LuaSnip
用过 nvim-cmp 的人都知道,补全菜单和 snippet 跳转经常打架。rusty-nvim 用 blink.cmp 替代,配合 269 个 Rust 专用 snippet,实现了:
- Tab 导航补全列表 + 跳转 snippet 占位符,一个键搞定两件事
- LSP/snippet 智能去重:宏(
println!/vec!)用 snippet 版本(带分号、占位符),方法用 LSP 版本(带签名信息) - ghost text 虚拟预览:灰色显示补全建议,不用真的插入
输入println→ Tab →println!("");→ 光标在引号内 → 输入内容 → Tab → 完毕。
🦀 全功能 Rust LSP:rustaceanvim
不是简单的nvim-lspconfig+rust-analyzer,而是用 rustaceanvim 深度集成:
| 功能 | 效果 |
|---|---|
| 内存布局 hover | 光标停在 struct 上 → 显示 size/offset/alignment/padding/niches |
| 全量 inlay hints | 类型提示、生命周期、闭包返回类型、借用模式……全开 |
| clippy 即时检查 | 保存即触发 clippy,不只是cargo check |
| 代码透镜 | 函数上方显示 “Run | Debug” 透镜 |
| 宏展开 | <leader>re展开println!/vec!等宏 |
| joinLines | <leader>rj智能合并多行 |
🔨 保存自动重跑 cargo run
这是最实用的功能之一:
- 按
<leader>rr→ 底部终端启动cargo run - 修改代码 →
<C-s>保存 → 终端自动 Ctrl+C +cargo run - 按
<leader>rq→ 停止自动重跑
改完代码保存就重跑,不用切到终端手动操作。
🐛 断点调试:codelldb 集成
<leader>db → 切换断点(红点) <leader>dc → 启动调试 → DAP UI 自动弹出 <leader>dj → 单步跳过 <leader>dl → 单步进入跨平台支持 macOS / Linux / Windows,codelldb 路径自动检测。
🧪 测试集成:neotest
<leader>tt → 运行光标处测试 <leader>tf → 运行当前文件所有测试 <leader>td → 调试光标处测试 ]T / [T → 跳转下一个/上一个失败测试📝 269 个 Rust Snippet
覆盖 Rust 开发全场景:
- 标准库宏:
println/eprintln/dbg/vec/format/todo/panic等 - 函数定义:
fn/pfn/afn/pafn/resultfn/optionfn - 控制流:
iflet/whilelet/match_opt/match_res/unsafe_block - 迭代器链:
itermap/iterfilter/iterfold/itercollect/iterzip - 设计模式:
builder/newtype/display/defaultimpl/fromimpl - 错误处理:
anyhow_result/anyhow_bail/context/map_err - Tokio 异步:
tokio_main/tokio_select/tokio_join/pin_box - Trait 实现:
iterator_impl/deref_impl/drop_impl/fromstr_impl - serde 属性:
serde_rename/serde_skip/serde_flatten - ……等等
🌐 前端支持
不只是 Rust!HTML、CSS、JavaScript、TypeScript、Tailwind CSS 全部开箱即用:
- LSP:
ts_ls(JS/TS)、tailwindcss、html、cssls - 格式化:Prettier 自动格式化 HTML/CSS/JS/TS/JSX/TSX
- Treesitter:语法高亮 + 代码对象选取/跳转/交换
💅 精美 UI
- NvChad onedark 主题,定制光标行色条
- 启动画面:RUSTY 大字 ASCII art + 按钮导航
- 语义高亮 + inlay hints + 代码透镜
- trouble.nvim 诊断面板 + which-key 快捷键发现
安装方式
一行命令(推荐)
curl-fsSLhttps://raw.githubusercontent.com/lisering/rusty-nvim/main/install.sh|bash克隆 + 脚本
gitclone https://github.com/lisering/rusty-nvim.gitcdrusty-nvim&&bashinstall.sh安装脚本有漂亮的进度条和 spinner 动画,依赖检测、备份旧配置、sparse-checkout 只下载必要文件。
前置依赖
只需要 4 样东西:
| 依赖 | 安装 |
|---|---|
| Neovim 0.10+ | brew install neovim |
| Rust 工具链 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
| ripgrep | brew install ripgrep |
| Nerd Font | brew install --cask font-jetbrains-mono-nerd-font |
其余全部自动安装。
60 秒快速验证
# 1. 创建 Rust 项目cargonew hello_rusty&&cdhello_rusty# 2. 用 Neovim 打开nvim src/main.rs# 3. 等待 rust-analyzer 索引(看状态栏)# 4. 试试这些:# K → hover(类型信息 + 内存布局)# <Space>rr → cargo run(底部终端打开)# <Space>ca → Code Action 菜单# <Space>ff → 搜索文件项目地址
GitHub: https://github.com/lisering/rusty-nvim
Gitee: https://gitee.com/johnsong2016_admin/rusty-nvim
如果觉得有用,欢迎 ⭐ Star!
FAQ
Q: 和 LazyVim / NvChad 默认配置有什么区别?
A: NvChad 是 UI 框架,rusty-nvim 在其基础上深度定制了 Rust 开发体验:269 个专用 snippet、rustaceanvim 全量配置(内存布局/语义高亮/全量 inlay hints)、保存自动重跑 cargo run、neotest 测试集成、codelldb 调试器。这些在 NvChad 默认配置中都没有。
Q: 支持 Windows 吗?
A: 原生 Windows 是实验性的,推荐使用 WSL。macOS 和 Linux 完全支持。
Q: 插件安装失败怎么办?
A: 在 Neovim 中运行:Lazy sync重新安装缺失插件,或:Lazy update更新所有插件。运行:Mason检查 LSP/调试器/格式化器安装状态。
Q: 可以同时写前端吗?
A: 可以!HTML、CSS、JavaScript、TypeScript、Tailwind CSS 都有 LSP 补全和 Prettier 格式化。打开.tsx文件就能用。