文章目录
- [一、Vim 是什么?](#一、Vim 是什么?)
- 二、核心概念:模式(Modes)
- 三、常用命令速查表
-
- [1. 启动与退出](#1. 启动与退出)
- [2. 光标移动(**正常模式**下)](#2. 光标移动(正常模式下))
- [3. 插入文本(从**正常模式**进入**插入模式**)](#3. 插入文本(从正常模式进入插入模式))
- [4. 删除与撤销](#4. 删除与撤销)
- [5. 复制与粘贴](#5. 复制与粘贴)
- [6. 搜索与替换](#6. 搜索与替换)
- [7. 可视模式操作](#7. 可视模式操作)
- 四、实用技巧与进阶命令
一、Vim 是什么?
Vim(Vi IMproved )是一个高度可配置的、功能强大的文本编辑器,是经典 Unix 编辑器 vi
的增强版。它以模态编辑(Modal Editing)为核心设计,这意味着在不同模式下,相同的按键会执行不同的操作。
核心特点:
- 无处不在:预装在几乎所有的 Linux 和 macOS 系统上,是系统管理员和开发者在命令行环境下的首选编辑器。
- 高效快捷:完全基于键盘操作,双手无需离开主键区,一旦熟练,编辑速度极快。
- 高度可定制 :通过
.vimrc
配置文件和无数的插件,你可以将其打造成一个强大的 IDE(集成开发环境)。 - 稳定轻量:处理大型文件时表现优异,资源占用极低。
二、核心概念:模式(Modes)
理解模式是学习 Vim 的关键。最常用的模式有以下几种:
-
正常模式(Normal Mode):
- 默认模式,也是你启动 Vim 后进入的模式。
- 在此模式下,按键用于执行命令,如移动光标、复制、粘贴、删除等,而不是输入文本。
- 从其他模式按
ESC
键返回正常模式。
-
插入模式(Insert Mode):
- 在此模式下,你可以像使用常规编辑器(如记事本、VSCode)一样输入和编辑文本。
- 从正常模式按
i
(insert)、a
(append)、o
(open new line)等键进入。
-
可视模式(Visual Mode):
- 用于选择文本。类似于用鼠标拖选。
- 从正常模式按
v
(字符可视)、V
(行可视)、Ctrl+v
(块可视)进入。
-
命令模式(Command-Line Mode):
- 用于执行Ex 命令,如保存、退出、搜索替换等。
- 从正常模式按
:
进入。
三、常用命令速查表
1. 启动与退出
命令 | 说明 |
---|---|
vim filename |
打开或新建文件 |
:q |
退出(如果文件未修改) |
:q! |
强制退出,不保存修改 |
:w |
保存 |
:wq 或 :x 或 ZZ |
保存并退出 |
:w new_filename |
另存为 |
2. 光标移动(正常模式下)
命令 | 说明 |
---|---|
h j k l |
左、下、上、右(推荐代替方向键) |
w / W |
移动到下一个单词开头(标点分隔/空格分隔) |
b / B |
移动到上一个单词开头 |
e / E |
移动到下一个单词结尾 |
0 (零) |
移动到行首 |
^ |
移动到行首第一个非空白字符 |
$ |
移动到行尾 |
gg |
移动到文件第一行 |
G |
移动到文件最后一行 |
5G 或 :5 |
移动到第 5 行 |
Ctrl + f |
向下翻页(Page Down) |
Ctrl + b |
向上翻页(Page Up) |
} |
移动到下一个段落(代码块) |
{ |
移动到上一个段落(代码块) |
3. 插入文本(从正常模式 进入插入模式)
命令 | 说明 |
---|---|
i |
在光标前插入 |
a |
在光标后插入 |
I |
在行首插入 |
A |
在行尾插入 |
o |
在当前行下方新建一行并插入 |
O |
在当前行上方新建一行并插入 |
s |
删除当前字符并插入 |
S 或 cc |
删除当前行并插入 |
4. 删除与撤销
命令 | 说明 |
---|---|
x |
删除光标所在的字符 |
dw |
删除一个单词(从光标处开始) |
d$ 或 D |
删除从光标到行尾 |
d0 |
删除从光标到行首 |
dd |
删除当前行 |
3dd |
删除 3 行 |
u |
撤销(Undo) |
Ctrl + r |
重做(Redo),即撤销的撤销 |
5. 复制与粘贴
命令 | 说明 |
---|---|
yy |
复制当前行 |
3yy |
复制 3 行 |
yw |
复制一个单词 |
y$ |
复制到行尾 |
p |
在光标后粘贴 |
P |
在光标前粘贴 |
6. 搜索与替换
命令 | 说明 |
---|---|
/pattern |
向下搜索字符串 "pattern" |
?pattern |
向上搜索字符串 "pattern" |
n |
跳到下一个匹配项 |
N |
跳到上一个匹配项 |
:%s/old/new/g |
全局替换 (将文件中所有的 old 替换为 new ) |
:%s/old/new/gc |
全局替换,但每次替换前请求确认 |
:s/old/new/g |
替换当前行 的所有 old |
7. 可视模式操作
命令 | 说明 |
---|---|
v |
进入字符可视模式 |
V |
进入行可视模式 |
Ctrl + v |
进入块可视模式(非常强大) |
选择文本后,可以: | |
d 或 x |
剪切选中的文本 |
y |
复制选中的文本 |
: |
对选中的行执行命令(如 :s/old/new/ ) |
四、实用技巧与进阶命令
-
重复命令:
- 在命令前加数字表示重复次数,如
5j
向下移动 5 行,3dd
删除 3 行。
- 在命令前加数字表示重复次数,如
-
组合命令:
d
(删除)、y
(复制)、c
(修改并进入插入模式)是操作符 ,可以和移动命令组合。dw
=d
(elete) +w
(ord) → 删除一个单词c$
=c
(hange) +$
(到行尾) → 删除到行尾并进入插入模式y}
=y
(ank) +}
(到下一段) → 复制到下一段
-
分屏操作:
:sp filename
:水平分屏打开文件:vsp filename
:垂直分屏打开文件Ctrl + ww
:在窗口间切换
-
打开多个文件:
vim file1 file2
:打开多个文件:n
:编辑下一个文件:N
或:prev
:编辑上一个文件
创作不易,欢迎打赏,你的鼓励将是我创作的最大动力。
