先记住 Neovim 的模式

按键或命令 作用
i 进入插入模式,开始输入文字
Esc 返回普通模式
Ctrl+[ 与 Esc 完全等价,手不必伸到键盘左上角
: 在普通模式进入命令模式

如果快捷键没有反应,先按一次 Esc,再操作。

常用习惯:在插入模式按 Ctrl+[,快速回到普通模式。

保存和退出

按键或命令 作用
:w 保存当前文件
:w main.c 第一次保存,并把文件命名为 main.c
:q 退出(文件有未保存修改时会阻止退出)
:wq 保存并退出
:q! 放弃未保存的修改并退出

撤销和重做

按键或命令 作用
u 撤销上一次修改
Ctrl+R 重做刚才撤销的修改
:earlier 5m 回到五分钟前的编辑状态
:later 5m 从旧状态向前恢复五分钟

撤销和重做需要在普通模式使用:先按 Esc,再按 u 或 Ctrl+R。

移动光标

按键或命令 作用
h 向左
j 向下
k 向上
l 向右
w 跳到下一个单词开头
b 跳到上一个单词开头
e 跳到当前或下一个单词末尾
0 跳到本行最前面
^ 跳到本行第一个非空字符
$ 跳到本行末尾
f字符 跳到本行下一个指定字符,例如 f) 跳到右括号
t字符 跳到指定字符前面,例如 t; 跳到分号前
; 重复上一次 f 或 t 跳转
, 反方向重复上一次 f 或 t 跳转
gg 跳到文件开头
G 跳到文件末尾
数字 + G 跳到指定行,例如 20G 跳到第 20 行
数字 + 移动键 重复移动,例如 5j 下移五行、3w 后移三个单词
{ 跳到上一段代码
} 跳到下一段代码
% 在配对的 ()、[]、{} 之间跳转
Ctrl+D 向下翻半页
Ctrl+U 向上翻半页
Ctrl+F 向下翻一整页
Ctrl+B 向上翻一整页
zz 把当前行放到屏幕中央
* 搜索光标下的单词
Ctrl+O 返回上一次跳转前的位置
Ctrl+I 从返回的位置再次前进

移动原则:h/j/k/l 适合最后几格微调,大范围移动优先使用单词、搜索和跳转。

插入新内容

按键或命令 作用
i 在光标前开始输入
a 在光标后开始输入
I 在本行第一个非空字符前输入
A 在本行末尾输入
o 在下方新建一行并输入
O 在上方新建一行并输入

复制、粘贴和删除

按键或命令 作用
yy 复制当前行
数字 + yy 复制多行,例如 3yy 复制三行
p 粘贴到光标后或当前行下方
P 粘贴到光标前或当前行上方
dd 删除(剪切)当前行
数字 + dd 删除多行,例如 3dd 删除三行
x 删除光标下的一个字符
v 按字符进入可视选择
V 按整行进入可视选择
Ctrl+V 按矩形区域进入可视选择
y 复制已经选中的内容
d 删除已经选中的内容
Esc 取消当前选择
gv 重新选择刚才选过的范围
viw 选择光标所在的整个单词
v$ 从光标选择到本行末尾
vip 选择当前一整段内容
vi( 选择小括号里面的内容
vi{ 选择大括号里面的内容
vi" 选择双引号里面的内容
va{ 连同大括号一起选择
ggVG 选择整个文件
"+y 把选中的内容复制到 Windows 剪贴板
"+p 从 Windows 剪贴板粘贴

范围复制示例:按 V,使用 j/k 扩大范围,按 y 复制,再移动位置并按 p 粘贴。

当前已配置 Windows 剪贴板互通,普通的 y/p 会直接复制和粘贴系统剪贴板内容。

搜索和替换

按键或命令 作用
/文字 向下搜索,例如 /printf
n 跳到下一个搜索结果
N 跳到上一个搜索结果
:%s/旧/新/g 替换整个文件中的所有匹配内容

缩进

按键或命令 作用
>> 当前行向右缩进
<< 当前行向左缩进
=G 从当前位置自动缩进到文件末尾
gg=G 自动整理整个文件的缩进

C/C++ 代码补全

本节以及后面的编译运行快捷键依赖当前 Neovim 配置。

按键或命令 作用
Tab 接受当前补全候选
Shift+Tab 返回上一个候选或代码片段位置
上/下方向键 切换补全候选
Ctrl+Space 手动打开补全菜单
Ctrl+K 显示或隐藏函数参数提示
K 查看光标下函数、变量或类型的说明

示例:

输入 pri 后,从菜单选择 printf,再按 Tab。

输入 ptr-> 后,会显示该结构体指针可以访问的成员。

编译、运行和错误跳转

按键或命令 作用
:make 自动保存并编译当前 C/C++ 文件
F5 与 :make 相同:自动选择 gcc 或 g++ 编译
:Run 运行已经编译好的程序
F6 与 :Run 相同:运行程序
:copen 打开编译错误列表
F7 与 :copen 相同
]q 跳到下一个编译错误
[q 跳到上一个编译错误
:cclose 关闭编译错误列表

推荐流程:

写代码 -> Esc -> F5 编译 -> 没有错误 -> F6 运行

运行程序的终端窗口

F6 运行程序后,Neovim 下方会打开终端窗口。

按键或命令 作用
Ctrl+\ 然后 Ctrl+N 从终端输入模式返回普通模式
:q 关闭当前终端窗口

最值得先记住的按键

按键或命令 作用
i 开始输入
Esc 回到普通模式
Ctrl+[ 快速回到普通模式(等同 Esc)
:w 保存
:q 退出
u 撤销
Ctrl+R 重做
F5 保存并编译
F6 运行
Tab 接受代码补全