Logo Neo93
My NeoVim Configuration for Windows

My NeoVim Configuration for Windows

August 28, 2025
6 min read
Table of Contents

0x01 安装方法

1.1 安装NeoVim

# 使用Scoop安装
scoop install neovim
 
# 或者使用winget
winget install Neovim.Neovim
 
# 验证安装
nvim --version

1.2 安装LazyVim

# 1. 备份现有配置(如果有的话)
mv ~/.config/nvim/ ~/.config/nvim.bak
 
# 2. 克隆lazyvim模板
git clone https://github.com/LazyVim/starter ~/.config/nvim
 
# 删除.git目录
rm -rf ~/.config/nvim/.git
 
# 启动neovim,自动安装插件
nvim

0x02 LazyVim默认快捷键分类

2.1 基础导航

快捷键功能说明
<Space>Leader键主要命令前缀
h/j/k/l光标移动左/下/上/右
w/b单词跳转下一个/上一个单词
gg/G文件跳转文件开头/结尾
Ctrl+u/d页面滚动向上/下滚动半页
zz居中显示当前行居中

2.2 文件操作类

快捷键功能说明
<leader>ff查找文件Telescope文件搜索
<leader>fg全局搜索搜索文件内容
<leader>fb缓冲区搜索搜索打开的文件
<leader>e文件树切换Neo-tree
<leader>w保存文件保存当前文件
<leader>q退出退出当前窗口

2.3 窗口和标签页

快捷键功能说明
<leader>-水平分割创建水平窗口
<leader>|垂直分割创建垂直窗口
<C-h/j/k/l窗口切换切换到不同的窗口
<S-h/l>标签切换上一个/下一个标签
<leader><tab>标签管理标签相关操作

2.4 编辑增强

快捷键功能说明
gcc切换注释注释/取消注释行
gc块注释可视模式下注释
<A-j/k>移动行向上/下移动行
<S-A-j/k>复制行向上/下复制行
<leader>ur重新加载重新加载配置

2.5 搜索和替换

快捷键功能说明
/向前搜索搜索文本
?向后搜索反向搜索文本
n/N搜索导航下一个/上一个结果
<leader>sr搜索替换全局搜索替换

2.6 LSP和代码

快捷键功能说明
<gd>跳转定义跳转到定义
<gr>查找引用查找所有引用
K悬浮文档显示文档
<leader>ca代码操作LSP代码操作
<leader>cr重命名重命名符号
<]d/[d诊断导航下一个/上一个错误

2.7 Git操作

快捷键功能说明
<leader>ggLazyGit打开Git界面
<leader>gbGit Blame显示Git信息
]h/[hGit Hunk下一个/上一个更改

修改快捷键的方法

~/.config/nvim/lua/keymaps.lua中添加:

-- 示例:修改文件搜索快捷键
vim.keymap.set("n", "<C-p>", "<leader>ff", { desc = "Find Files" })
 
-- 示例:添加新的快捷键
vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>", { desc = "Clear Highlight" })

0x03 LazyVim默认插件

3.1 核心插件

插件功能默认启用主要命令
lazy.nvim插件管理器:Lazy
which-key.nvim快捷键提示<space>等待
telescope.nvim模糊搜索<leader>ff/fg/fb
neo-tree.nvim文件浏览器<leader>e
bufferline.nvim标签页<S-h/l>切换
lualine.nvim状态栏自动显示

3.2 编辑增强

插件功能默认启用主要命令
nvim-treesitter语法高亮自动工作
nvim-autopairs自动配对输入括号自动配对
comment.nvim智能注释gcc/gc
indent-blankline缩进提示自动显示
nvim-surround环绕操作ys/ds/cs

3.3 LSP和补全

插件功能默认启用主要命令
nvim-lspconfigLSP配置gd/gr/K
mason.nvimLSP安装器:Mason
nvim-cmp自动补全<Tab>补全
trouble.nvim诊断面板<leader>xx

3.4 Git集成

插件功能默认启用主要命令
gitsigns.nvimGit状态显示]h/[hGit块导航
lazygit.nvimGit界面<leader>gg

0x04 自定义安装的插件

4.1 bullets.vim 项目符号自动化

配置文件:~/.config/nvim/lua/plugins/bullets.lua

return {
  "bullets-vim/bullets.vim",
  ft = { "markdown", "text", "gitcommit" },
  config = function()
 
  end,
}

使用方法:

  • 在Markdown文件中输入 - 项目1 然后按 Enter
  • 自动生成新的项目符号
  • 支持多级嵌套和任务列表 []

4.2 bufferline.nvim-增强标签页

配置文件:~/.config/nvim/lua/plugins/buffer-line.lua核心配置:

opts = {
  options = {
    mode = "buffers",
    numbers = "ordinal",    -- 显示序号
    diagnostics = "nvim_lsp",   -- 显示LSP诊断
    separator_style = "thick",
  }
}

快捷键:

  • <leader>bp:固定缓冲区
  • <leader>bo:关闭其他缓冲区
  • <leader>1-9:跳转到指定序号缓冲区
  • <S-h/l>:切换缓冲区

4.3 solarized-osaka.nvim 主题

配置文件:~/.config/nvim/lua/plugins/colorscheme.lua

return {
  "craftzdog/solarized-osaka.nvim",
  lazy = true,
  priority = 1000,
  opts = {
    transparent = true,   -- 透明背景
  },
}

4.4 Markdown增强套件

配置文件:~/.config/nvim/lua/plugins/markdown-enhanced.lua包含插件:

  • vim-markdown:语法高亮增强
  • vim-table-mode:表格编辑(<leader>tm切换)
  • 自定义代码块:<leader>mcb插入代码块

配置文件:~/.config/nvim/lua/plugins/markdown-preview.lua

keys = {
  { "<leader>mp", "打开预览" },
  { "<leader>ms", "关闭预览" },
}

4.5 neo-tree.nvim 文件管理器

配置文件:~/.config/nvim/lua/plugins/neo-tree.lua快捷键:

  • <leader>e:切换文件树
  • Y:复制路径到剪贴板
  • 0:用系统应用打开

4.6 智能编辑插件

配置文件:~/.config/nvim/lua/plugins/smart-editing.lua包含:

  • nvim-autopairs:自动配对括号
  • tabout.nvim:Tab键跳出括号
    • <Tab>:跳出括号
    • <S-Tab>:反向跳出

4.7 Treesitter 增强

配置文件:~/.config/nvim/lua/plugins/treesitter.lua功能:

  • 增强选择:<C-space>扩展选择
  • 文本对象:af/if函数,ac/ic
  • 导航:]f/[f函数间跳转

0x05 个人配置调整

5.1 基础选项(options.lua)

-- 主要设置
vim.g.mapleader = " "   -- leader键
vim.opt.number = true   -- 行号
vim.opt.conceallevel = 0    -- 显示所有字符
vim.opt.tabstop = 2         -- Tab宽度
vim.opt.shiftwidth = 2      -- 缩进宽度

5.2 自定义快捷键(Keymaps.lua)

-- 自定义的快捷键
keymap.set("n", "x", '"_x')       -- x 不影响剪贴板
keymap.set("n", "<Leader>p", '"_0p')    -- 空格+p 粘贴
keymap.set("n", "<Leader>c", '"_c')    -- 空格+c 删除并编辑
keymap.set("n", "te", ":tabedit")    -- 新建标签页
keymap.set("n", "<Tab>", ":tabnext<Return>")    -- Tab切换
keymap.set("n", "<s-tab>", ":tabprev<Return>")    -- Shift+Tab切换

0x06 常用操作指南

6.1 日常编辑流程

  1. nvim filename.md:打开文件
  2. <leader>e:打开文件树预览
  3. <leader>ff:快速搜索文件
  4. <leader>fg:全局搜索内容
  5. gcc:注释/取消注释
  6. <leader>w:保存文件

6.2 Markdown写作流程

  1. 创建Markdown文件
  2. 输入- 开始列表(bullet.vim自动生成)
  3. <leader>mcb:插入代码块
  4. <leader>mp:预览效果
  5. <leadertm:启用表格模式

6.3 代码开发流程

  1. <leader>ff:打开文件
  2. gd:跳转到定义
  3. gr:查找引用
  4. <leader>ca:代码操作
  5. <leader>cr:重命名
  6. <leader>gg:Git管理

6.4 插件管理

  1. :Lazy:打开插件管理器
  2. :Mason:管理LSP服务器
  3. :LazyExtras:管理额外功能

0x07 重要提示

7.1 配置文件结构

~/.config/nvim/
├── init.lua              # 入口文件
├── lua/
│   ├── config/
│   │   ├── options.lua   # 基础选项
│   │   ├── keymaps.lua   # 快捷键
│   │   └── lazy.lua      # 插件管理器设置
│   └── plugins/          # 插件配置目录
│       ├── bullets.lua   # 项目符号插件
│       ├── buffer-line.lua # 标签页插件
│       └── ...           # 其他插件

7.2 修改配置的最佳实践

  1. 备份:修改前先备份配置
  2. 重启:修改后重启NeoVim
  3. 测试:在测试文件中验证功能
  4. 渐进:一次只修改一个配置

7.3 故障排查

  1. :checkhealth:检查健康状态
  2. :Lazy reload [plugin]:重新加载插件
  3. :messages:查看错误信息
  4. vim.notify():调试输出