一、使用教程
-
vimtutor
-
显示行号:
vim ~/.vimrc 在文件的最后一行输入 set number 并保存退出
二、vim 三种工作模式
- 命令模式
- 编辑模式
- 末行模式
三、命令模式下的相关操作
- 保存退出
ZZ
- 代码格式化
gg=G
- 光标移动:
- 左下上右:
H J K L
- 移动到行首:
0
- 移动到行尾:
$
- 移动到文件首部:
gg
- 移动到文件尾部:
G
- 跳转到第20行:
20 + G
- 从当前位置向下移动 n 行:
n + enter
- 左下上右:
- 删除命令:
- 删除光标后的一个字符:
x
(小写) - 删除光标前的一个字符:
X
(大写) - 删除一个单词:
dw
- 删除光标前的所有字符:
d0
- 删除光标后的所有字符:
d$
或者D
- 删除光标所在行:
dd
- 删除多行:
ndd
删除光标所在行以及下面 n 行 - 删除光标所在行到文件首部的字符:
dgg
- 删除光标所在行到文件尾部的字符:
dG
- 删除光标后的一个字符:
- 撤销与反撤销:
- 撤销:
u
- 反撤销:
ctrl + r
- 撤销:
- 复制粘贴:
- 复制一行:
yy
- 复制多行:
nyy
- 粘贴到光标下一行:
p
- 粘贴到光标上一行:
P
(大写)
- 复制一行:
- 字符可视模式:
v
- 移动光标
- 复制:
y
- 删除:
d
- 粘贴:
p
(小写 光标之后)P
(大写 光标之前)
- 行可视模式:
V
- 增加缩进:
>
- 减少缩进:
<
- 增加缩进:
- 块可视模式:
ctrl + V
o
:将光标在块的左上角和右下角切换O
:将光标移动到所在行的对角nl
:将光标向右移动 n 个字符nj
:将光标向下移动 n 行I
:插入,按两次ESC
退出(例如:多行注释操作)
- 替换操作:
r
:替换光标后的字符R
:替换光标后的多个字符
- 查找操作:
/xxx
?xxx
#
查找光标所在的单词n 或 N
切换到下一个
- 想看 man 文档
- 光标移动到要查的内容上,然后
章节号 + K
- shell 命令:
man 3 printf
man man
- 光标移动到要查的内容上,然后
四、命令模式切换到文本编辑模式
a
:在光标所覆盖的字符后面插入A
:行尾部插入i
:在光标所覆盖的字符前面插入I
:行首部插入o
:在光标所在行的下一行开始插入O
:在光标所在行的上一行开始插入s
:删除掉光标覆盖的字符并开始插入S
:删除光标所在的整行并开始插入
五、末行模式
- 从命令模式进入末行模式:
:
- 保存退出:
:wq
或:x
- 保存:
:w
- 退出:
:q
- 退出不保存:
:q!
- 跳转到第 n 行:
:n
- 删除从 m 行到 n 行:
:m,nd
- 末行模式下执行 shell 命令:
:!ls
六、替换
- 替换光标所在行的字符串:
:s/old/new
- 替换光标所在行所有的字符串:
:s/old/new/g
- 替换光标所在行所有的字符串并提示确认:
:s/old/new/gc
- 替换某些行范围内的字符串:
:10,20s/old/new
- 替换某些行范围内的所有字符串:
:10,20s/old/new/g
- 替换当前文档所有的:
:%s/old/new/g
七、分屏操作
- 当前文件分屏:
:sp
或:vsp
- 两个屏幕显示不同的文件:
:sp 文件名
或:vsp 文件名
- 分屏关闭:
:qall
:wqall
:q
- 屏幕切换:
ctrl + w + w
- 打开的时候分屏:
vi -o 多个文件名
或vi -O 多个文件名