mirror of
https://github.com/d0zingcat/dotfiles.git
synced 2026-05-13 15:09:34 +00:00
Neovim 配置
这是一个基于 lazy.nvim 的 Neovim 配置,专注于 Python 和 Go 开发,提供现代化的编辑体验和高效的开发环境。
功能特点
- 🚀 基于 lazy.nvim 的插件管理
- 💻 完善的 LSP 支持,包括代码补全、诊断和代码操作
- 🔍 强大的语法高亮和代码分析 (Treesitter)
- 🧩 针对 Python 和 Go 开发的专业配置
- 🔧 内置调试支持 (DAP)
- 🎨 美观的 UI 和主题
目录结构
nvim/
├── init.lua # 主配置入口
├── lua/
│ ├── core/ # 核心配置
│ │ ├── autocmds.lua # 自动命令
│ │ ├── keymaps.lua # 键位映射
│ │ ├── lazy.lua # 插件管理器配置
│ │ └── options.lua # 编辑器选项
│ └── plugins/ # 插件配置
│ ├── coding.lua # 编码相关插件 (LSP, 补全)
│ ├── colorscheme.lua # 主题配置
│ ├── editor.lua # 编辑器增强插件
│ ├── go.lua # Go 开发专用插件
│ ├── python.lua # Python 开发专用插件
│ ├── ui.lua # UI 相关插件
│ └── utils.lua # 实用工具插件
安装步骤
- 备份现有配置(如果有)
mv ~/.config/nvim ~/.config/nvim.bak
- 克隆此配置
git clone https://github.com/yourusername/nvim-config.git ~/.config/nvim
- 启动 Neovim
nvim
首次启动时,lazy.nvim 将自动安装所有插件。
语言支持
Python
- 语言服务器: Pyright 和 Ruff-LSP
- 代码格式化: Black 和 isort
- 调试: debugpy
- 虚拟环境管理: venv-selector
- 测试支持: pytest
Go
- 语言服务器: gopls
- 代码格式化: gofumpt 和 goimports
- 调试: delve
- 工具集成: go.nvim
- 测试支持: Go 测试工具
主要快捷键
所有快捷键都基于
<Space>作为 leader 键
通用
| 快捷键 | 功能 |
|---|---|
<Space>ff |
查找文件 |
<Space>fg |
全局搜索 |
<Space>fb |
浏览缓冲区 |
<Space>e |
切换文件浏览器 |
<Space>w |
保存文件 |
<Space>q |
退出 |
<Space>h |
清除搜索高亮 |
<Space>bd |
删除缓冲区 |
LSP 相关
| 快捷键 | 功能 |
|---|---|
gd |
转到定义 |
gr |
查找引用 |
K |
显示悬停信息 |
<Space>ca |
代码操作 |
<Space>cr |
重命名 |
<Space>cf |
格式化代码 |
]d |
下一个诊断 |
[d |
上一个诊断 |
Python 专用
| 快捷键 | 功能 |
|---|---|
<Space>pv |
选择 Python 虚拟环境 |
<Space>pt |
运行最近的测试 |
<Space>pT |
运行文件中的测试 |
<Space>pd |
调试最近的测试 |
Go 专用
| 快捷键 | 功能 |
|---|---|
<Space>gtt |
运行包测试 |
<Space>gtf |
测试函数 |
<Space>gfs |
填充结构体 |
<Space>gfa |
添加标签 |
<Space>ge |
生成错误处理 |
<Space>gr |
运行 Go 程序 |
调试
| 快捷键 | 功能 |
|---|---|
<Space>db |
切换断点 |
<Space>dc |
继续执行 |
<Space>di |
单步进入 |
<Space>do |
单步跳出 |
<Space>dO |
单步跳过 |
<Space>dt |
终止调试 |
自定义配置
您可以通过编辑以下文件来自定义配置:
lua/core/options.lua: 修改编辑器选项lua/core/keymaps.lua: 添加或修改键位映射lua/core/autocmds.lua: 修改自动命令
疑难解答
如果遇到问题:
- 确保 Neovim 版本 >= 0.9.0
- 更新所有插件:
:Lazy update - 检查健康状态:
:checkhealth
依赖项
- Neovim >= 0.9.0
- Git
- 一个支持连字的 Nerd 字体 (推荐 JetBrainsMono Nerd Font)
- Node.js (用于某些 LSP 服务器)
- Python 3 (用于 Python 开发)
- Go (用于 Go 开发)
- ripgrep (用于全局搜索)
灵感来源
这个配置受到以下项目的启发:
许可证
MIT