为什么要学 Vim
在服务器上改配置、没有图形界面的环境下,你只能用一个终端编辑器。Vim 是几乎所有 Linux 发行版预装的,学会了在任何机器上都能干活。
它的设计哲学:大多数时间你是在看/改代码,不是在敲新代码。所以默认是"normal 模式",键盘变成了一堆快捷操作。
三种核心模式
按 i / a / o 按 Esc
编辑 ←──────────── 正常 ────────────→ 命令
────────────▶ ←────────────
按 Esc 按 : / /
| 模式 | 作用 | 进入方式 |
|---|---|---|
| 正常模式 | 浏览、删除、复制、移动 | 按 Esc |
| 插入模式 | 正常打字输入 | i(光标前) a(光标后) o(下一行) |
| 命令模式 | 保存、退出、搜索、替换 | : 或 / |
核心原则:手指不离开键盘,持续停留在主键区。
移动:丢掉方向键
h ← 左 j ↓ 下 k ↑ 上 l → 右
w 跳到下一个单词开头
b 跳到上一个单词开头
e 跳到单词末尾
0 跳到行首
^ 跳到行首第一个非空字符
$ 跳到行尾
gg 跳到文件开头
G 跳到文件末尾
:42 跳到第 42 行
为什么不用方向键?因为方向键离主键区太远,每次抬手浪费时间。
编辑操作
" 删除
x 删除当前字符
dw 删除一个单词
dd 删除整行
d$ 删除到行尾
" 复制粘贴
yy 复制整行
yw 复制一个单词
p 粘贴到光标后
P 粘贴到光标前
" 撤销与重做
u 撤销
Ctrl+r 重做
" 其他
. 重复上一次操作(非常有用的快捷操作)
>> 当前行右缩进
<< 当前行左缩进
搜索与替换
" 搜索:按 / 输入关键词,回车
/search_word " n 下一个匹配,N 上一个匹配
" 替换全文
:%s/old/new/g " 替换全文所有匹配
" 替换并逐个确认
:%s/old/new/gc " y 替换,n 跳过
多文件与分屏
:split file2.py " 水平分屏打开另一个文件
:vsplit file2.py " 垂直分屏
Ctrl+w hjkl " 在分屏间移动光标
Ctrl+w = " 分屏大小均分
:bd " 关闭当前 buffer
实用配置
在 ~/.vimrc 中加入:
syntax on " 语法高亮
set number " 显示行号
set relativenumber " 显示相对行号(方便跳转)
set expandtab " 将 Tab 转换为空格
set tabstop=4 " Tab 显示宽度
set shiftwidth=4 " 缩进宽度
set autoindent " 自动缩进
set hlsearch " 高亮搜索结果
set incsearch " 增量搜索
set ignorecase " 忽略大小写
set smartcase " 有大写时区分大小写
set mouse=a " 支持鼠标
最少必要命令
一天学会 Vim 不太现实,但记住这 10 个操作就能干活了:
| 操作 | 命令 |
|---|---|
| 开始编辑 | i |
| 退出编辑 | Esc |
| 保存 | :w |
| 退出 | :q |
| 不保存强制退出 | :q! |
| 保存并退出 | :wq 或 ZZ |
| 删除一行 | dd |
| 复制一行 | yy |
| 粘贴 | p |
| 撤销 | u |
学习路线
- 先用
vimtutor命令(Vim 自带教程)过一遍基础操作 - 安装一个终端内的练习工具(如 VimBeater)
- 日常改配置、写笔记时强制用 Vim,坚持两周
- 逐步加插件(NERDtree、fzf、coc.nvim)
别一上来就堆插件,先把移动和编辑的基本功练熟。

说些什么吧!