Vim 基础
1. Vim 的模式
Vim 有多个模式,最常用的是以下三种:
| 模式 |
说明 |
如何进入 |
| 普通模式 |
默认模式,用于移动光标、复制粘贴、删除等操作。 |
启动 Vim 时自动进入,或按 Esc 返回。 |
| 插入模式 |
用于输入文本。 |
按 i、a、o 等键进入。 |
| 可视模式 |
用于选择文本块,然后进行复制、删除等操作。 |
按 v(字符选择)、V(行选择)进入。 |
| 命令行模式 |
用于执行保存、退出、搜索、替换等命令。 |
在普通模式下按 : 进入。 |
核心原则:大部分时间停留在普通模式,需要输入文本时切换到插入模式,输入完成后按 Esc 返回普通模式。
2. 启动与退出
| 命令 |
说明 |
vim filename |
打开(或创建)文件并进入普通模式 |
:q |
退出(如果文件未修改) |
:q! |
强制退出,不保存修改 |
:w |
保存文件 |
:wq 或 :x 或 ZZ |
保存并退出 |
:e filename |
打开另一个文件(在当前 Vim 中) |
3. 光标移动(普通模式)
基本移动
| 按键 |
说明 |
h |
左移一个字符 |
j |
下移一行 |
k |
上移一行 |
l |
右移一个字符 |
0 |
移动到行首 |
^ |
移动到行首第一个非空白字符 |
$ |
移动到行尾 |
gg |
移动到文件第一行 |
G |
移动到文件最后一行 |
:n |
跳转到第 n 行(如 :42) |
按词移动
| 按键 |
说明 |
w |
跳到下一个单词开头 |
e |
跳到当前或下一个单词结尾 |
b |
跳到上一个单词开头 |
屏幕滚动
| 按键 |
说明 |
Ctrl+f |
向下翻一页 |
Ctrl+b |
向上翻一页 |
Ctrl+d |
向下翻半页 |
Ctrl+u |
向上翻半页 |
zz |
将当前行置于屏幕中央 |
4. 编辑操作(普通模式)
进入插入模式
| 按键 |
说明 |
i |
在光标前插入 |
a |
在光标后插入 |
I |
在行首插入 |
A |
在行尾插入 |
o |
在当前行下方新建一行并插入 |
O |
在当前行上方新建一行并插入 |
s |
删除当前字符并进入插入模式 |
S |
删除当前行并进入插入模式 |
删除
| 按键 |
说明 |
x |
删除光标所在字符 |
dd |
删除当前行 |
d$ |
删除从光标到行尾 |
d0 |
删除从光标到行首 |
dw |
删除从光标到下一个单词开头 |
dG |
删除从当前行到文件末尾 |
dgg |
删除从当前行到文件开头 |
复制与粘贴
| 按键 |
说明 |
yy |
复制当前行 |
y$ |
复制从光标到行尾 |
yw |
复制从光标到单词结尾 |
p |
在光标后粘贴 |
P |
在光标前粘贴 |
撤销与重做
| 按键 |
说明 |
u |
撤销上一次操作 |
Ctrl+r |
重做(撤销的撤销) |
缩进
| 按键 |
说明 |
>> |
向右缩进当前行 |
<< |
向左缩进当前行 |
= |
自动缩进(如 gg=G 自动缩进整个文件) |
5. 查找与替换
查找
| 按键 |
说明 |
/pattern |
向下查找 pattern |
?pattern |
向上查找 pattern |
n |
继续查找下一个(方向同上次) |
N |
继续查找上一个(反向) |
* |
向下查找光标所在的单词 |
# |
向上查找光标所在的单词 |
替换
在命令行模式下使用 :s(substitute)命令:
| 命令 |
说明 |
:s/old/new/ |
将当前行第一个 old 替换为 new |
:s/old/new/g |
将当前行所有 old 替换为 new |
:%s/old/new/g |
将整个文件所有 old 替换为 new |
:%s/old/new/gc |
替换前逐一询问确认 |
:10,20s/old/new/g |
将第10行到第20行之间的所有 old 替换为 new |
6. 可视模式
| 按键 |
说明 |
v |
进入字符可视模式(移动光标选择字符) |
V |
进入行可视模式(选择整行) |
Ctrl+v |
进入块可视模式(选择矩形区域) |
选中后按 d 删除,按 y 复制,按 p 粘贴,按 > 或 < 缩进。 |
|
7. 多文件操作
| 命令 |
说明 |
:e filename |
在当前窗口打开另一个文件 |
:ls |
列出所有缓冲区(打开的文件) |
:b n |
跳转到缓冲区编号 n |
:bnext 或 :bn |
切换到下一个缓冲区 |
:bprev 或 :bp |
切换到上一个缓冲区 |
:bd |
删除当前缓冲区(关闭文件) |
:sp filename |
水平分割窗口并打开文件 |
:vsp filename |
垂直分割窗口并打开文件 |
Ctrl+w w |
在分割窗口间切换 |
Ctrl+w q |
关闭当前分割窗口 |
8. 其他常用操作
| 按键/命令 |
说明 |
. |
重复上一次修改操作 |
J |
将下一行合并到当前行末尾 |
r |
替换光标所在字符(后跟新字符) |
R |
进入替换模式(连续覆盖字符) |
~ |
切换光标下字符的大小写 |
Ctrl+g |
显示当前文件名和行号 |
:set nu |
显示行号 |
:set nonu |
隐藏行号 |
:nohlsearch |
取消搜索高亮 |
:!command |
执行外部命令(如 :!ls) |
9. 配置文件(.vimrc)
Vim 的行为可以通过家目录下的 .vimrc 文件自定义。常用设置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| set number
syntax on
set autoindent set smartindent
set tabstop=4 set shiftwidth=4 set expandtab
set hlsearch set incsearch
set mouse=a
|
10. 获取帮助
在 Vim 中,可以通过以下命令获取帮助:
| 命令 |
说明 |
:help |
打开帮助主页面 |
:help topic |
查看特定主题的帮助 |
:help w |
查看 w 命令的帮助 |
:help usr_toc |
查看用户手册目录 |
小贴士
- 学习曲线:Vim 需要刻意练习,建议运行
vimtutor 命令(终端输入)完成交互式教程。
- 不要依赖鼠标:尽量使用键盘操作,效率更高。
- 组合命令:Vim 的命令可以组合,如
d2w 删除两个单词,y3j 复制向下三行。
- 习惯性按 Esc:完成输入后及时返回普通模式。