01|基础交互:界面、模式、保存与撤销
这一章只有一个目标:让你在 Neovim 里随时知道自己处于什么状态,下一次按键会发生什么,以及怎样安全退出。
整套教程都会围绕同一个小项目 pocket-tasks 逐章展开。后面的章节会继续使用前面的练习成果,因此请保留项目文件。
本章结束时,你会掌握
- 看懂屏幕上几个常驻区域;
- 在普通模式和插入模式之间切换;
- 用 F1 命令面板保存,无需输入冒号命令;
- 撤销、重做,并确认文件何时真的写进磁盘;
- 读懂教程里的按键写法。
本章要记的新按键不多,只有 Esc、A、u、Ctrl+r 和 Space。前面见过的 i 与 F1,这里也会再练一遍。
1. 建立练习项目
如果你还停在第 00 章打开的 Neovim 里,先按 F1、输入 wqa,再连按两次 Enter 回到终端。然后运行:
mkdir -p ~/playground/pocket-tasks
cd ~/playground/pocket-tasks
git init
nvim README.md这时磁盘上可能还没有 README.md。Neovim 只是先建了一个同名 Buffer,等第一次保存以后,文件才会真正落到磁盘上。

教程里的按键记号
| 写法 | 实际动作 |
|---|---|
| Space e | 依次按空格、e,无需同时按 |
| Ctrl+r | 按住 Ctrl,点一下 r |
| F1 | 按键盘的 F1 |
| Enter | 回车 |
| Esc | 退出当前输入状态,回到普通模式 |
这里把空格设成了 Leader。文中出现 Space,就表示要从 Leader 开始输入自定义快捷键。
2. 认识界面区域
刚打开文件时,屏幕大致可以分成这些区域:
- 最左侧符号栏:用于显示 Git 改动和诊断标记。当前配置始终保留这一列,没有标记时为空。
- 行号栏:显示绝对行号。当前行及其行号会高亮,便于确认光标位置。
- 中央编辑区:文件正文。波浪线
~表示文件内容已经结束,它们不属于文件。 - 顶部标签栏:存在多个 Tab 时显示。Tab 表示一套窗口布局;文件内容保存在 Buffer 中,后面会专门练习。
- 底部状态栏:Lualine 会显示模式、文件名、Git 分支、诊断、光标位置等信息。换到不同文件或环境时,没有内容的项目会自动省略。
- 最底部命令与消息行:搜索内容、插件提示和保存结果会暂时显示在这里。
状态栏里如果写着 NORMAL,键盘就是拿来发命令的;如果写着 INSERT,键盘就是拿来输入文字的。
3. 两个核心模式
同一个按键换到不同模式,作用也会跟着变。现在先记住两种:
普通模式 Normal
这是默认模式。字母键在这里代表移动、删除、复制等操作。文件刚打开时,通常就在普通模式。
插入模式 Insert
按 i 进入插入模式,接下来敲下的文字就会写进文件。按 Esc 可以回到普通模式。
可以把 Esc 当成“回普通模式”的通用键。只要不确定自己在哪儿,先按一下 Esc,再输入普通模式命令。
练习:写下第一份 README
确认底部显示普通模式,然后:
- 按 i。
- 输入下面的内容。换行就按 Enter。
# Pocket Tasks
A tiny task tracker for terminal-loving humans.
## Goals
- Add tasks
- Complete tasks
- List open tasks
- 全部输入完后按 Esc。
这时正文应该已经出现在编辑区,底部也回到了 NORMAL。不过内容可能还只在内存里,并没有保存。

小提示:插入时敲下
(、[、引号等字符,mini.pairs会自动补上另一半。直接在中间接着打字就行;再输入已经存在的右半边时,光标通常会直接越过去。
4. 从行尾继续写:A
普通模式下:
- i:在光标位置之前开始插入;
- A:跳到当前行末尾,并进入插入模式。
下面故意改错一次:
- 你现在应当停在最后一行附近。按 A。
- 输入
!!!。 - 按 Esc。
这时最后一行应该会变成 - List open tasks!!!。

要在行尾补充逗号、注释或参数时,A 很方便,因为无需先将光标移动到行尾。
5. 撤销与重做
普通模式下:
- u:撤销最近一次修改;
- Ctrl+r:重做刚撤销的修改。
接着上面的 !!! 练习:
- 按 u,三个感叹号消失。

- 按 Ctrl+r,三个感叹号回来。

- 再按 u,把它们清掉,留下干净的 README。

最后一行现在应该重新变回了 - List open tasks。
从进入插入模式到离开,通常会被算成一个撤销单元。也就是说,从按下 i 或 A,到最后按 Esc,中间的修改往往按一次 u 就能全部撤销。如果想让撤销记录切得更细,可以每写一小段就回一次普通模式。
6. 用 F1 保存,不用输入冒号
默认情况下,Neovim 不会自动保存,也不会自动格式化。只有运行保存命令以后,内容才会写进磁盘。
只保存当前文件
- 确认已按 Esc 回普通模式。
- 按 F1,打开 Snacks 命令选择器。
- 输入
write。

- 按第一次 Enter 选中命令;底部命令行会出现自动填好的
:write。

- 再按一次 Enter 执行。
完成后,命令面板会关闭,底部会出现类似 README.md written 的消息,磁盘上也终于有了 README.md。

命令面板里的基本交互:
- 直接打字:筛选命令;
- Up / Down:移动高亮项;
- 第一次 Enter:选中高亮命令并送到底部命令行;
- 第二次 Enter:执行命令;
- Esc:取消并关闭面板。
保存全部文件并退出
这个流程你已经走过一次了,这里再说清楚它到底做了什么:
- 普通模式按 F1;
- 输入
wqa;

- 连按两次 Enter:第一下选中,第二下执行。
wqa 会保存所有改过的 Buffer,然后退出全部窗口。
这一章后面还要继续练,所以现在只用 write 保存,先别退出。等最后检查完,再用 wqa 收尾。
7. 用 Space 查看功能入口
在普通模式按一下 Space,稍等片刻,Which-key 就会列出接下来能按哪些键。完整菜单不用背,先养成一个习惯:

想查找某个功能时,先按 Space 查看 Which-key 提示。
现在先看看,不用选任何功能。按 Esc 把菜单收起来。
后面很快会用到:
- Space e:文件浏览器;
- Space ,:已打开文件列表;
- Space /:全项目文字搜索;
- Space g s:Git 变更视图;
- Space c f:格式化当前文件。
这些按键要依次输入。比如 Space c f,就是先后按空格、c、f 三下。
8. 退出前检查
离开前逐项确认:
- README 内容与示例一致;
!!!已经清理;- 你能看出底部当前显示
NORMAL还是INSERT; - 你明确知道当前配置不会自动保存。
现在依次按 Esc → F1 → 输入 wqa → Enter → Enter。
回到终端后运行 ls,应该就能看到 README.md 了。
本章肌肉记忆
| 目标 | 按键 |
|---|---|
| 开始输入 | i |
| 从行尾追加 | A |
| 回普通模式 | Esc |
| 撤销 | u |
| 重做 | Ctrl+r |
| 打开命令面板 | F1 |
| 保存当前文件 | F1,输入 write,Enter,Enter |
| 保存全部并退出 | F1,输入 wqa,Enter,Enter |
| 查看 Leader 提示 | Space,稍等 |