Vim极简入门-编辑器之神

一、为什么学习Vim?

Vim是从Vi发展而来的文本编辑器,被称作”编辑器之神”,是Linux/Unix系统标配。

1.1 Vim特点

1
2
3
4
5
6
7
8
9
10
┌─────────────────────────────────────────────────────────────────┐
│ Vim特点 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ⚡ 高效 → 不用鼠标,纯键盘操作 │
│ 🔥 强大 → 插件丰富,功能无限扩展 │
│ 🌍 通用 → 几乎所有Linux系统都预装 │
│ 💪 装逼 → 程序员必备技能 😂 │
│ │
└─────────────────────────────────────────────────────────────────┘

1.2 核心概念

概念 说明
Normal模式 默认模式,用于导航和命令
Insert模式 插入文本,类似普通编辑器
Visual模式 可视化选择,用于选中区域
Command模式 执行命令,按 : 进入

1.3 模式切换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
┌─────────────────────────────────────────────────────────────┐
│ │
:命令 ──────────┐ │
│ ↑ │ │
│ │ ↓ │
Normal ──→ Insert ←── Visual
│ ↑ │ │ │
│ │ │ │ │
│ └──────────┘ ↓ │
│ │
Normal: i/a/o 进入Insert
Insert: Esc 回到Normal
Normal: v/V/Ctrl+v 进入Visual
Normal: : 进入Command
│ │
└─────────────────────────────────────────────────────────────┘

二、基础操作

2.1 进入和退出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 打开文件
vim filename
vim newfile.txt

# 退出(Normal模式)
:q # 退出(未修改)
:q! # 不保存强制退出
:w # 保存
:wq # 保存并退出
:x # 保存并退出(等价:wq)
ZZ # 保存并退出(快捷键)

# 保存并退出
:wq filename # 另存为

2.2 移动光标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 基本移动(Normal模式)
h # 左
j # 下
k # 上
l # 右

# 单词移动
w # 下一个单词开头
e # 当前单词结尾
b # 上一个单词开头

# 行内移动
0 # 行首
$ # 行尾
^ # 行首(第一个非空字符)
g_ # 行尾(最后一个非空字符)

# 页面移动
gg # 文件开头
G # 文件末尾
Ctrl+u # 上半页
Ctrl+d # 下半页
Ctrl+b # 上整页
Ctrl+f # 下整页
H # 屏幕顶部
M # 屏幕中间
L # 屏幕底部

# 行号跳转
:100 # 跳转到第100行
100G # 跳转到第100行

2.3 编辑操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 进入插入模式
i # 在光标前插入
a # 在光标后插入
I # 行首插入
A # 行尾插入
o # 下一行新行插入
O # 上一行新行插入
s # 删除光标字符并插入
S # 删除整行并插入

# 删除
x # 删除光标字符
X # 删除光标前字符
dd # 删除整行
dw # 删除到单词结尾
d$ # 删除到行尾
d0 # 删除到行首
dG # 删除到文件末尾
dgg # 删除到文件开头

# 删除并进入插入模式
cc # 删除整行并插入
cw # 删除单词并插入

# 复制粘贴
yy # 复制整行
yw # 复制单词
y$ # 复制到行尾
p # 粘贴到光标后
P # 粘贴到光标前
dd # 剪切整行

2.4 撤销和重做

1
2
u           # 撤销
Ctrl+r # 重做

三、高级编辑

3.1 可视模式

1
2
3
4
5
6
7
8
9
10
11
12
# 进入可视模式
v # 字符可视模式
V # 行可视模式
Ctrl+v # 块可视模式

# 可视模式操作
y # 复制选中
d # 删除选中
c # 删除选中并进入插入模式
~ # 大小写切换
U # 转为大写
u # 转为小写

3.2 文本对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 配合 d, y, c 使用
# 内部
diw # 删除光标所在单词(不含空格)
daw # 删除光标所在单词(含空格)
di( / di) # 删除括号内内容
di{ / di} # 删除大括号内内容
di[ / di] # 删除中括号内内容
di" / di' # 删除引号内内容
dit # 删除标签内内容

# 整个
yaw # 复制单词(含空格)
yap # 复制段落
ci( # 修改括号内内容

3.3 查找替换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查找
/word # 向下查找
?word # 向上查找
n # 下一个匹配
N # 上一个匹配
* # 查找光标所在单词(向下)
# # 查找光标所在单词(向上)

# 替换
:s/old/new/ # 替换当前行第一个
:s/old/new/g # 替换当前行所有
:%s/old/new/g # 替换文件所有
:1,10s/old/new/g # 替换1-10行
:.,+5s/old/new/g # 替换当前行及后5行
:%s/old/new/gc # 替换所有(确认)

3.4 重复命令

1
2
3
4
5
6
7
8
9
10
11
12
# . 命令 - 重复上次编辑
. # 重复上次操作

# 数字 + 命令 - 重复N次
3dd # 删除3行
5x # 删除5个字符
3w # 前进3个单词
5j # 下移5行

# 组合使用
d3w # 删除3个单词
c2j # 删除2行并进入插入模式

四、多文件操作

4.1 缓冲区

1
2
3
4
5
6
7
8
9
10
11
12
# 打开多个文件
vim file1.txt file2.txt
vim *.txt

# 缓冲区操作
:ls # 列出所有缓冲区
:bnext # 下一个缓冲区
:bprev # 上一个缓冲区
:bfirst # 第一个缓冲区
:blast # 最后一个缓冲区
:buffer 2 # 切换到第2个缓冲区
:bdelete # 关闭缓冲区

4.2 窗口分屏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 分屏
:sp filename # 水平分屏
:vsp filename # 垂直分屏
Ctrl+w s # 水平分屏(当前文件)
Ctrl+w v # 垂直分屏(当前文件)

# 窗口切换
Ctrl+w h/j/k/l # 切换到左/下/上/右窗口
Ctrl+w w # 循环切换
Ctrl+w t # 切换到左上角
Ctrl+w b # 切换到右下角

# 窗口调整
Ctrl+w = # 等分窗口
Ctrl+w _ # 最大化高度
Ctrl+w | # 最大化宽度
:resize 20 # 高度设为20行
:vertical resize 40 # 宽度设为40列

4.3 标签页

1
2
3
4
5
6
7
8
9
10
11
# 标签页操作
:tabnew filename # 新建标签页
:tabe filename # 新建标签页
gt # 下一个标签页
gT # 上一个标签页
:tabfirst # 第一个标签页
:tablast # 最后一个标签页
:tabm 0 # 移到第一个
:tabm # 移到最后一个
:tabclose # 关闭标签页
:tabdo command # 所有标签页执行命令

五、快捷键汇总

5.1 移动类

快捷键 说明
h/j/k/l 左/下/上/右
w/e/b 词前进/词尾/词尾
0/$ 行首/行尾
gg/G 文件开头/结尾
H/M/L 屏幕顶/中/底

5.2 编辑类

快捷键 说明
i/a 光标前/后插入
o/O 下/上行插入
x/dd/dw 删除字符/行/词
yy/p 复制/粘贴
u/Ctrl+r 撤销/重做

5.3 查找类

快捷键 说明
/ 查找
n/N 下/上一个
* 查找当前词

5.4 其他

快捷键 说明
v/V/Ctrl+v 可视模式
: 命令模式
. 重复命令

六、Vim配置

6.1 创建配置文件

1
2
# 创建配置文件
touch ~/.vimrc

6.2 常用配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
" ~/.vimrc

" ====== 通用设置 ======
" 开启语法高亮
syntax on

" 显示行号
set number

" 相对行号(便于跳转)
set relativenumber

" 括号匹配高亮
set showmatch

" 搜索高亮
set hlsearch

" 增量搜索
set incsearch

" 忽略大小写搜索(智能忽略)
set ignorecase
set smartcase

" 自动缩进
set autoindent
set smartindent

" Tab宽度
set tabstop=4
set shiftwidth=4
set expandtab

" 允许退格键删除
set backspace=2

" 开启鼠标支持
set mouse=a

" 命令行补全
set wildmenu

" 显示状态栏
set laststatus=2

" 底部显示当前模式
set showmode

" 滚动距离
set scrolloff=5

" ====== 外观 ======
" 配色方案
colorscheme molokai

" 高亮当前行
set cursorline

" 高亮当前列
set cursorcolumn

七、实用技巧

7.1 快速注释

1
2
3
4
5
6
7
8
9
10
11
# 批量注释
Ctrl+v 进入块可视
选择多行
I 进入行首插入
输入注释符(如 #)
Esc 退出

# 取消注释
Ctrl+v 进入块可视
选择注释符
d 删除

7.2 宏录制

1
2
3
4
5
6
7
8
9
# 录制宏
qa # 开始录制到寄存器a
... # 执行操作
q # 停止录制

# 使用宏
@a # 执行寄存器a的宏
@@ # 重复上次执行的宏
10@a # 执行10次

7.3 快速跳转

1
2
3
4
5
6
7
8
# 标记
ma # 在光标处创建标记a
'a # 跳转到标记a
:marks # 查看所有标记

# 跳转列表
Ctrl+o # 后退
Ctrl+i # 前进

7.4 代码折叠

1
2
3
4
5
6
7
8
9
10
11
12
13
# 折叠
zf # 创建折叠(可视化选中后)
zF # 当前行创建折叠

# 打开/关闭
zo # 打开折叠
zc # 关闭折叠
zR # 打开所有折叠
zM # 关闭所有折叠

# 折叠方式
set foldmethod=indent # 按缩进
set foldmethod=syntax # 按语法

八、插件推荐

8.1 插件管理器

1
2
3
# 安装vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

8.2 常用插件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
" ~/.vimrc 添加
call plug#begin('~/.vim/plugged')

" 文件树
Plug 'preservim/nerdtree'

" 状态栏
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

" 语法检查
Plug 'scrooloose/syntastic'

" 自动括号补全
Plug 'jiangmiao/auto-pairs'

" 代码补全
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" 主题
Plug 'morhetz/gruvbox'

call plug#end()

8.3 安装插件

1
2
# 进入vim
:PlugInstall

九、替代方案

工具 特点
Neovim 现代Vim分支,更好的扩展性
VSCode Vim插件 VSCode中体验Vim
Neovim VSCode VSCode中使用Neovim
Kakoune 类似Vim的操作方式

十、学习资源

1
2
3
4
5
6
7
8
9
10
11
12
13
┌─────────────────────────────────────────────────────────────────┐
│ Vim学习路线 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 入门: 移动 → 编辑 → 保存退出 │
│ │
│ 进阶: 查找替换 → 可视模式 → 宏 │
│ │
│ 高级: 分屏 → 插件 → 配置 → Neovim │
│ │
│ 练习: vimtutor → 每天练习 → 形成肌肉记忆 │
│ │
└─────────────────────────────────────────────────────────────────┘

参考资料


持续更新中…欢迎收藏!

#Vim #编辑器 #效率 #Linux #教程


Vim极简入门-编辑器之神
https://r0f2.my/post/27-vim-editor-basics/
作者
JA
发布于
2026年2月13日
许可协议