一份全面的 Neovim 操作指南,包含常用快捷键、光标移动、文本编辑等核心功能。

neovim

常用快捷键

分类命令说明使用频率
光标移动(基础)
h/j/k/l左/下/上/右移动★★★★★
w/b向前/后移动一个单词★★★★★
0/$移动到行首/行尾★★★★★
gg/G文件首/尾★★★★★
f{char}向后查找字符★★★★★
t{char}向后查找字符前★★★★☆
^行首第一个非空字符★★★★☆
分类快捷键模式功能使用频率
基础移动h,j,k,l普通左、下、上、右★★★★★
单词移动w普通下一个单词开头★★★★★
b普通上一个单词开头★★★★★
e普通单词结尾★★★★
行移动0普通行首★★★★★
$普通行尾★★★★★
^普通第一个非空白字符★★★★
光标移动(进阶)
{/}段落跳转★★★★☆
H/M/L屏幕顶/中/底★★★★☆
<C-u>/<C-d>上/下翻半页★★★★☆
%匹配括号跳转★★★★☆
*/#向后/前查找当前单词★★★★☆

在 Vim 的普通模式下,如果想将当前光标滚动到页面的中间位置,可以使用以下命令:

zz

这个命令会将光标所在的行滚动到窗口的中间。其他相关的命令还有:

  • zt:将光标所在行滚动到窗口的顶部。
  • zb:将光标所在行滚动到窗口的底部。

折叠

  • 折叠代码块: zf
  • 打开折叠: zo
  • 关闭折叠: zc
  • 折叠所有: zM
  • 打开所有: zR

Operator

许多更改文本的命令都是由 操作符(Neovim Operator 操作指南)动作(motion) 组成的。 带有 d 删除操作符的删除命令的格式如下:

d motion

  • d - is the delete operator.
  • motion - is what the operator will operate on (listed below).

A short list of motions: w - 直到下一个单词的开头,不包括其第一个字符. e - 到当前单词的结尾,包括最后一个字符. $ - 到行尾,包括最后一个字符。

大多数命令前可以加数字表示重复次数,如 3w 向前跳3个单词 命令可以组合使用,如 d3w 删除后面3个单词

编辑操作
i/a光标前/后插入★★★★★
A在行尾开始添加★★★★★
o/O下/上新建一行并插入★★★★★
dw删除当前单词★★★★★
d$从此处删除到行尾★★★★★
dd删除当前行★★★★★
yy复制当前行★★★★★
p/P后/前粘贴★★★★★
u撤销★★★★★
<C-r>重做★★★★☆
分类快捷键模式功能使用频率
插入i普通光标前插入★★★★★
a普通光标后插入★★★★★
o普通下方新建一行★★★★★
删除dd普通删除整行★★★★★
dw普通删除单词★★★★
x普通删除字符★★★★
文本对象
diw删除当前单词★★★★★
ci"修改引号中的内容★★★★★
da(删除括号及其内容★★★★☆
yi{复制大括号中内容★★★★☆
vib选择括号中内容★★★★☆

文件和缓冲区导航

分类快捷键模式功能使用频率
缓冲区切换:bnext命令下一个缓冲区★★★★
:bprevious命令上一个缓冲区★★★★
文件搜索<leader>ff普通查找文件★★★★★
<leader>fg普通实时文本搜索★★★★★
Neovim(Vim) 中的文件操作
分类快捷键模式功能使用频率
查找替换:%s/old/new/g命令全局查找替换★★★★★
可视模式v普通进入可视模式★★★★★
V普通选择整行★★★★
多行操作
V行选择模式★★★★★
<C-v>块选择模式★★★★☆
>>增加缩进★★★★☆
<<减少缩进★★★★☆
  • 可视模式: v (字符), V (行), Ctrl+v (块)
  • 重复上一次普通模式命令: .
  • 撤销: u
  • 重做: Ctrl+r
  • 跳转到行首: 0
  • 跳转到行尾: $
  • 跳转到匹配的括号: %
  • 进入插入模式: i (前), a (后), o (下), O (上)
搜索替换
/pattern向后搜索★★★★★
?pattern向前搜索★★★★☆
n/N下/上一个匹配★★★★★
:%s/old/new/g全文替换★★★★☆
:s/old/new/g当前行替换★★★★☆
文件操作
:w保存文件★★★★★
:q退出★★★★★
:e file打开文件★★★★☆
:bn/:bp下/上一个缓冲区★★★★☆
Telescope操作
<leader>ff查找文件★★★★★
<leader>fg全局搜索★★★★★
<leader>fb缓冲区列表★★★★☆
<leader>fh搜索历史文件★★★★☆
LSP操作
gd转到定义★★★★★
gr查看引用★★★★★
K查看文档★★★★☆
<leader>rn重命名★★★★☆
<leader>ca代码操作★★★★☆
窗口操作
<C-w>v垂直分割★★★★☆
<C-w>s水平分割★★★★☆
<C-w>h/j/k/l窗口间移动★★★★★
<C-w>c关闭当前窗口★★★★☆
  • 水平分割窗口: :split:sp
  • 垂直分割窗口: :vsplit:vs
  • 在窗口间切换: Ctrl+w + h/j/k/l
  • 关闭窗口: Ctrl+w + c
  • 最大化窗口: Ctrl+w + =
标记与跳转
ma设置标记a★★★★☆
'a跳转到标记a★★★★☆
<C-o>跳回上一位置★★★★★
<C-i>跳到下一位置★★★★★
详细的见 Neovim(Vim) 中的跳转操作

补充说明:

  1. <leader> 默认是 \ 键,很多人改成空格键
  2. 大多数命令前可以加数字表示重复次数,如 3w 向前跳3个单词
  3. 命令可以组合使用,如 d3w 删除后面3个单词
  4. 频率评分:★★★★★ 表示必会且频繁使用,★★★★☆ 表示建议掌握

建议学习路径:

  1. 先掌握基础光标移动和编辑操作
  2. 熟练文本对象操作
  3. 学习搜索替换和文件操作
  4. 掌握进阶移动和标记跳转
  5. 最后是插件相关的快捷键

Neovim 中最essential的文本编辑、导航和开发快捷键,并按使用频率进行了排序

Neovim 文本编辑和导航快捷键

  • 自定义 <leader> 键以加快常用命令的访问, 默认是 \
  • 使用 :help <命令> 获取详细命令帮助
  • 考虑安装 which-key.nvim 插件帮助记忆快捷键

推荐的 Neovim Go 开发插件

插件名称主要功能推荐理由
go.nvimGo 语言开发全面支持提供最新和最全面的 Go 开发工具集
nvim-lspconfig语言服务器协议配置提供智能代码补全、实时错误检查
null-ls.nvim外部工具集成无缝集成 gofmt、golangci-lint 等工具
nvim-treesitter语法高亮和解析提供更智能的代码语法分析
telescope.nvim模糊搜索工具强大的文件和代码搜索能力
trouble.nvim诊断信息展示清晰展示代码错误和警告
mason.nvim开发工具管理轻松管理 LSP 和开发工具
gitsigns.nvimGit 集成行级 Git 状态展示

VIM mode 快捷键

以下是 Vim 各模式下最有效和最常用的快捷键集合:

普通模式(Normal Mode)快捷键

类别快捷键功能描述使用频率
光标移动h,j,k,l左、下、上、右移动★★★★★
w下一个单词开头★★★★★
b上一个单词开头★★★★★
0行首★★★★★
$行尾★★★★★
编辑操作dd删除整行★★★★★
yy复制整行★★★★
p粘贴★★★★
u撤销★★★★★
Ctrl + r重做★★★★

插入模式(Insert Mode)快捷键

类别快捷键功能描述使用频率
插入位置i光标前插入★★★★★
a光标后插入★★★★★
o下方新建一行并插入★★★★★
O上方新建一行并插入★★★★
特殊插入Esc返回普通模式★★★★★
Ctrl + h删除前一个字符★★★
Ctrl + w删除前一个单词★★★

可视模式(Visual Mode)快捷键

类别快捷键功能描述使用频率
选择模式v字符级可视模式★★★★★
V行级可视模式★★★★★
Ctrl + v块级可视模式★★★★
编辑操作y复制选中内容★★★★
d删除选中内容★★★★
c修改选中内容★★★

命令模式(Command Mode)快捷键

类别快捷键功能描述使用频率
文件操作:w保存文件★★★★★
:q退出★★★★★
:wq保存并退出★★★★★
查找替换:%s/old/new/g全局查找替换★★★★
其他:set nu显示行号★★★
:e filename打开文件★★★

高级快捷键

类别快捷键功能描述使用频率
文本对象diw删除当前单词★★★★
ci(修改括号内容★★★
ya{复制大括号内所有内容★★★
跳转gg跳转到文件开头★★★★
G跳转到文件结尾★★★★
  1. 记住这些快捷键需要大量实践
  2. 可以逐步学习,不必一次性记住所有快捷键
  3. 建议使用 vimtutor 进行系统学习 vim
  4. 可以考虑使用 Vim 插件来增强快捷键功能