Vim / Neovim 入门
Vim 是终端下最强大的文本编辑器之一,Neovim 是其现代化分支。
这页适合做“从不会退出到能稳定编辑”的入门路线。学 Vim 最容易劝退人的地方,不是功能太多,而是前期模式切换和肌肉记忆没建立,所以一定要先学最小高频集。
推荐练习顺序
建议按下面顺序掌握:
- 先搞懂 Normal / Insert / Command 三种核心模式
- 再练移动、删除、复制、保存退出
- 然后补搜索替换、文本对象、批量编辑
- 最后再进入插件、LSP、现代化 Neovim 配置
只要先把“进、改、存、退”这几步练顺,后面扩展就会轻松很多。
安装
# Windows
scoop install neovim
# macOS
brew install neovim
# Ubuntu
apt install neovim -y
模式
| 模式 | 进入方式 | 说明 |
|---|---|---|
| Normal | Esc | 默认,导航 |
| Insert | i / a | 输入文字 |
| Visual | v / V | 选择文本 |
| Command | : | 执行命令 |
基础操作
移动
h j k l ← ↓ ↑ →
w / b 下/上一个单词
0 / $ 行首/行尾
gg / G 文件首/尾
Ctrl+d / Ctrl+u 半页下/上
编辑
i 光标前插入
a 光标后插入
o / O 下/上方新建行
x 删除字符
dd 删除整行
yy 复制整行
p 粘贴
u 撤销
Ctrl+r 重做
搜索替换
/keyword 向下搜索
?keyword 向上搜索
n / N 下/上一个匹配
:%s/old/new/g 全局替换
:s/old/new/g 当前行替换
文件操作
:w 保存
:q 退出
:wq 保存退出
:q! 强制退出不保存
:e file.txt 打开文件
实用技巧
ciw 修改当前单词
ci" 修改引号内内容
di( 删除括号内内容
. 重复上一次操作
* 搜索光标下的单词
ggVG 全选
>> / << 缩进/取消缩进
多行编辑
Ctrl+v 进入列选择模式
选择行 → I 在每行前插入
选择行 → A 在每行后追加
Neovim 配置
配置文件位置:~/.config/nvim/init.lua(Linux/macOS)或 ~/AppData/Local/nvim/init.lua(Windows)
-- 基础设置
vim.opt.number = true -- 行号
vim.opt.relativenumber = true -- 相对行号
vim.opt.tabstop = 2 -- Tab 宽度
vim.opt.shiftwidth = 2 -- 缩进宽度
vim.opt.expandtab = true -- Tab 转空格
vim.opt.clipboard = "unnamedplus" -- 系统剪贴板
vim.opt.ignorecase = true -- 搜索忽略大小写
vim.opt.smartcase = true -- 有大写时区分
vim.opt.termguicolors = true -- 真彩色
推荐发行版
不想从零配置可以直接用:
| 发行版 | 说明 |
|---|---|
| LazyVim | 开箱即用,模块化 |
| AstroNvim | 美观,社区活跃 |
| NvChad | 轻量快速 |
VS Code Vim 扩展
在 VS Code 中使用 Vim 键位:
// settings.json
{
"vim.useSystemClipboard": true,
"vim.hlsearch": true,
"vim.leader": "<space>"
}
什么时候用 VS Code Vim,什么时候用 Neovim
- VS Code Vim:适合想保留 VS Code 生态,但开始建立 Vim 操作习惯的人
- Neovim:适合长期终端工作流、远程开发、tmux 配合使用场景
很多人会先在 VS Code 里练操作,再逐步迁移到原生 Neovim,这是一条很自然的路线。
常见问题
不会退出
先记住最关键的三个:
Esc
:wq
:q!
打字时一直乱跳
通常是因为还停留在 Normal 模式。想输入文字时,先按 i 或 a 进入 Insert 模式。
一开始太难,坚持不下来
建议不要一上来追求全量替代 VS Code。先在小文件、配置文件、SSH 临时编辑里使用 Vim,练熟后再慢慢扩大使用范围。
延伸阅读
参考链接
- Vim Adventures — 游戏学 Vim
- OpenVim — 交互式教程
- Neovim 官网 — 文档与下载