Neovim 使用指南

按图索骥 12 分钟阅读 更新于 2026-04-17

一、简介

Neovim 是 Vim 的一个现代化分支,继承了 Vim 的高效编辑理念,同时提供了更好的插件支持、异步处理能力和更清晰的代码架构。本文基于 yandy/neovim-config 配置,介绍 Neovim 的安装和使用方法。


二、安装配置

1. 克隆配置文件

1
git clone https://github.com/yandy/neovim-config.git ~/.config/nvim

2. 安装依赖工具(Arch Linux)

1
sudo pacman -S neovim wl-clipboard luarocks lldb lazygit tree-sitter-grammars

依赖说明:

  • neovim: 编辑器本体
  • wl-clipboard: Wayland 下的剪贴板支持
  • luarocks: Lua 包管理器
  • lldb: 调试器
  • lazygit: TUI Git 客户端
  • tree-sitter-grammars: 语法高亮支持

3. 启动 Neovim

首次启动时会自动下载并安装所有插件:

1
nvim

三、基础操作

1. 模式切换

快捷键 作用
i 在光标前进入插入模式
a 在光标后进入插入模式
o 在当前行下方新建一行并进入插入模式
v 进入可视模式(字符选择)
V 进入可视模式(行选择)
<C-q> 进入块可视模式(列选择)

2. 光标移动

快捷键 作用
h/j/k/l 左/下/上/右移动
gg 跳到文件开头
G 跳到文件末尾
0 跳到行首
$ 跳到行尾
^ 跳到行首第一个非空字符
<C-f> / <C-b> 向下/向上翻页
<C-d> / <C-u> 向下/向上翻半页
e / b 向前/向后跳一个单词
} / { 向前/向后跳一个段落
]] / [[ 向前/向后跳一个段落(section)

3. 文本编辑

快捷键 作用
x 删除光标下的字符
d 删除(配合 motion 使用)
dd 删除当前行
c 删除并进入插入模式
cc 删除当前行并进入插入模式
r{char} 替换光标下的字符为 {char}
~ 切换大小写
>> / << 增加/减少缩进
gcc 注释/取消注释当前行
{Visual}gc 注释/取消注释选中的行

4. 复制粘贴

快捷键 作用
y 复制(yank)
yy 复制当前行
p 在光标后粘贴
P 在光标前粘贴
:registers 查看所有寄存器

5. 撤销重做

快捷键 作用
u 撤销
<C-r> 重做
. 重复上次操作

6. 窗口操作

快捷键/命令 作用
:sp 水平分割窗口
:vs 垂直分割窗口
<C-w>h/j/k/l 切换到左/下/上/右窗口
<C-w>w 循环切换窗口
<C-w>+/- 增加/减少窗口高度
<C-w></> 增加/减少窗口宽度
:wq 保存并退出
:q! 不保存退出
:options 打开选项窗口(查看和设置所有选项)

7. 折叠操作

快捷键 作用
zR 展开所有折叠
zM 关闭所有折叠
za 切换当前折叠状态

四、范围(Range)与替换

范围指定

范围由行说明符组成,用 ,; 分隔:

符号 含义
{number} 绝对行号
. 当前行
$ 文件最后一行
% 整个文件(等同于 1,$
/{pattern}/ 下一个匹配的行
?{pattern}? 上一个匹配的行

示例:

1
2
:4,/pattern/    " 从第 4 行到匹配 pattern 的行
:5;/pattern/ " 从第 5 行开始,在之后匹配 pattern 的行

替换命令

1
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

常用 flags:

  • g: 替换行内所有匹配(默认只替换第一个)
  • c: 每次替换前确认
    • y: 替换当前匹配
    • n: 跳过当前匹配
    • a: 替换所有剩余匹配
    • q: 退出替换

示例:

1
2
:%s/old/new/g      " 全局替换
:%s/old/new/gc " 全局替换并确认

五、插件快捷键

1. Buffer 管理

快捷键 作用
<leader>bn 下一个 buffer
<leader>bp 上一个 buffer
<leader>bc 关闭其他所有 buffer
<leader>bd 关闭当前 buffer

<leader> 默认为空格键

2. Snacks Picker(文件搜索)

快捷键 作用
<leader><space> 智能查找
<leader>/ 全局搜索(grep)
<leader>ff 查找文件
<leader>fb 查找 buffer
<leader>fr 查找最近文件
<leader>fg 查找 git 日志
<leader>fh 查找帮助文档
<leader>fk 查找快捷键
<leader>fc 查找 nvim 配置

3. Snacks Explorer(文件浏览器)

快捷键 作用
<leader>e 打开文件浏览器
r 重命名文件
d 删除文件
a 新建文件/目录(目录以 / 结尾)
<CR> / l 打开文件/展开目录
m 移动选中的文件
c 复制选中的文件
h 关闭目录
Z 关闭所有目录
u 刷新文件树
<A-h> 切换隐藏文件显示
<A-i> 切换忽略文件显示

4. LSP(语言服务器)

快捷键 作用
gd 跳转到定义
gr 查看引用
gi 跳转到实现
gy 跳转到类型定义
<leader>ls 列出当前 buffer 的符号
<leader>lS 列出工作区符号
<leader>ld 当前文档诊断信息
<leader>lD 工作区诊断信息
<leader>th 切换 inlay hints
<A-S-f> 格式化当前 buffer
快捷键 作用
<C-n> 选择下一个
<C-p> 选择上一个
<Tab> / <C-y> 确认选择
<C-e> 取消/隐藏补全
<C-f> 向下滚动文档
<C-b> 向上滚动文档

6. 终端与工具

快捷键 作用
<C->` 打开浮动终端
<leader>G 打开 LazyGit
<leader>mp 切换 Markdown 预览
<leader>ms 分屏 Markdown 预览

7. Opencode(AI 助手)

快捷键 作用
<C-.> 打开/关闭 Opencode 终端
<leader>oa 打开询问窗口(引用当前 buffer:@buffer
{Visual}<leader>oa 打开询问窗口(引用选中的文本:@this
{Visual}<leader>ox 执行 Opencode 动作
<A-C-f>(终端内) 向下滚动页面
<A-C-b>(终端内) 向上滚动页面

8. 调试(DAP)

快捷键 作用
<leader>db / <F9> 切换断点
<leader>dD / <S-F9> 清除所有断点
<leader>ds / <F5> 开始/继续调试
<leader>do / <F10> 单步跳过
<leader>di / <F11> 单步进入
<leader>dO / <S-F11> 单步退出
<leader>dQ / <S-F5> 终止调试
<leader>dB 设置条件断点
<leader>du 切换 DAP UI

支持语言: Python、C/C++、JavaScript、TypeScript


六、高级技巧

1. 可视块模式批量编辑

进入块可视模式(<C-q>)后:

  • I{string}<ESC>: 在块内每行行首插入 {string}
  • A{string}<ESC>: 在块内每行行尾追加 {string}

2. 标记(Mark)

快捷键 作用
m{a-z} 在当前文件设置标记
m{A-Z} 在全局设置标记
'{mark} 跳转到标记行
g'{mark} 跳转到标记位置(不修改跳转列表)
<C-o> 跳转到旧的位置
<C-i> 跳转到新的位置
<C-]> 在帮助文档中跟随链接

3. 全局命令

1
:[range]g[lobal]/{pattern}/[cmd]

对匹配 {pattern} 的行执行 [cmd] 命令。


七、配置结构

配置文件位于 ~/.config/nvim/,主要结构如下:

1
2
3
4
5
6
~/.config/nvim/
├── init.lua # 入口文件
├── lua/ # Lua 配置模块
│ ├── plugins/ # 插件配置
│ └── ...
└── ...

八、总结

Neovim 是一个功能强大的编辑器,配合合理的配置可以大幅提升开发效率。建议新手:

  1. 先掌握基础:模式切换、光标移动、基本编辑
  2. 逐步学习插件:不要一次性安装太多插件
  3. 坚持练习:Vim 的学习曲线较陡,但熟练后会爱不释手

更多帮助请使用 :help 查看内置文档。

标签: neovim vim

如果这篇文章对您有帮助,欢迎打赏支持