# 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 # 实用工具插件 ``` ## 安装步骤 1. 备份现有配置(如果有) ```bash mv ~/.config/nvim ~/.config/nvim.bak ``` 2. 克隆此配置 ```bash git clone https://github.com/yourusername/nvim-config.git ~/.config/nvim ``` 3. 启动 Neovim ```bash nvim ``` 首次启动时,lazy.nvim 将自动安装所有插件。 ## 语言支持 ### Python - 语言服务器: Pyright 和 Ruff-LSP - 代码格式化: Black 和 isort - 调试: debugpy - 虚拟环境管理: venv-selector - 测试支持: pytest ### Go - 语言服务器: gopls - 代码格式化: gofumpt 和 goimports - 调试: delve - 工具集成: go.nvim - 测试支持: Go 测试工具 ## 主要快捷键 > 所有快捷键都基于 `` 作为 leader 键 ### 通用 | 快捷键 | 功能 | |--------|------| | `ff` | 查找文件 | | `fg` | 全局搜索 | | `fb` | 浏览缓冲区 | | `e` | 切换文件浏览器 | | `w` | 保存文件 | | `q` | 退出 | | `h` | 清除搜索高亮 | | `bd` | 删除缓冲区 | ### LSP 相关 | 快捷键 | 功能 | |--------|------| | `gd` | 转到定义 | | `gr` | 查找引用 | | `K` | 显示悬停信息 | | `ca` | 代码操作 | | `cr` | 重命名 | | `cf` | 格式化代码 | | `]d` | 下一个诊断 | | `[d` | 上一个诊断 | ### Python 专用 | 快捷键 | 功能 | |--------|------| | `pv` | 选择 Python 虚拟环境 | | `pt` | 运行最近的测试 | | `pT` | 运行文件中的测试 | | `pd` | 调试最近的测试 | ### Go 专用 | 快捷键 | 功能 | |--------|------| | `gtt` | 运行包测试 | | `gtf` | 测试函数 | | `gfs` | 填充结构体 | | `gfa` | 添加标签 | | `ge` | 生成错误处理 | | `gr` | 运行 Go 程序 | ### 调试 | 快捷键 | 功能 | |--------|------| | `db` | 切换断点 | | `dc` | 继续执行 | | `di` | 单步进入 | | `do` | 单步跳出 | | `dO` | 单步跳过 | | `dt` | 终止调试 | ## 自定义配置 您可以通过编辑以下文件来自定义配置: - `lua/core/options.lua`: 修改编辑器选项 - `lua/core/keymaps.lua`: 添加或修改键位映射 - `lua/core/autocmds.lua`: 修改自动命令 ## 疑难解答 如果遇到问题: 1. 确保 Neovim 版本 >= 0.9.0 2. 更新所有插件: `:Lazy update` 3. 检查健康状态: `:checkhealth` ## 依赖项 - Neovim >= 0.9.0 - Git - 一个支持连字的 Nerd 字体 (推荐 JetBrainsMono Nerd Font) - Node.js (用于某些 LSP 服务器) - Python 3 (用于 Python 开发) - Go (用于 Go 开发) - ripgrep (用于全局搜索) ## 灵感来源 这个配置受到以下项目的启发: - [LazyVim](https://github.com/LazyVim/LazyVim) - [AstroNvim](https://github.com/AstroNvim/AstroNvim) - [NvChad](https://github.com/NvChad/NvChad) ## 许可证 MIT