什么是 vim?

Vim 是一个类似 Vi 的功能强大,高度可定制的文本编辑器,在 Vi 的基础上改进和增加了很多特性。被亲切的称为 “编辑器之神” !

Vim 的三种模式

作为一个命令行编辑器,只能通过命令指令的方式完成浏览,编辑和检索操作,必须了解编辑工具操作过程中不同的操作模式

  • 查看模式 | 浏览模式 | 可视模式 ( Visual ):只能查看文档内容,不能进行编辑和修改
  • 编辑模式 | 插入模式 ( insert ):可以编辑和修改文档内容
  • 命令模式 | 末行模式 ( command ):通过输入的指令完成具体的特殊功能的操作

查看模式

查看模式下,最核心的是文件内容的浏览查看,在命令行模式下只能通过光标的移动完成内容的移动展示

移动光标

按键 描述
h 向左移动一个字符
j 向下移动一个字符
k 向上移动一个字符
l 向右移动一个字符
20j 向下移动20行
0 | ^ 移动到本行开头
$ 移动到本行末尾
H 移动到当前屏幕最上方 [ head ]
M 移动到当前屏幕中央 [ middle ]
L 移动到当前屏幕最下方 [ last ]
gg 移动到当前文件第一行
G 移动到当前文件最后一行

滚动屏幕

按键 描述
Ctrl+u 向上滚动半页 [ up ]
Ctrl+d 向下滚动半页 [ down ]
Ctrl+b 向上滚动一页 [ back ]
Ctrl+f 向下滚动一页 [ front ]

搜索替换

按键 描述
/word 从当前光标向后搜索名称为 word 的字符串
?word 从当前光标向前搜索名称为 word 的字符串
n 使用 / 时,n 向后搜索,使用 ? 时,n 向前搜索
N 与 n 相反
n1,n2s/word1/word2/g n1 与 n2 是数字。在n1 与 n2 之间寻找 word1 这个字符串,并将该字符串取代为 word2
1,$s/word1/word2/g 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2
1,$s/word1/word2/gc 同上,替换前显示提示字符给用户确认是否替换

删除,复制与粘贴

按键 描述
x | X x为向后删除一个字符 [ 相当于 del ],X 为向前删除一个字符 [ 相当于 backspace ]
nx n为数字,连续向后删除 n 个字符
dd 删除光标所在的那一行
ndd 删除光标所在的向下 n 行
dgg 删除光标所在行到第一行的数据
dG 删除光标所在行到最后一行的数据
d$ 删除光标所在处到该行的最后一个字符
d0 删除光标所在处到改行的第一个字符
yy 复制光标所在行
nyy
ygg
yG
y$
y0
p | P p 在光标所在行下方粘贴内容,P 在光标所在行上方粘贴内容
J 使光标所在行的数据与下一行结合为一行
u 撤销上一个动作
Ctrl+r 重做上一个动作
. 重复上一个动作

查看模式>>编辑模式

按键 描述
i | I i 从光标前面开始输入,I 从行首开始输入
a | A a 从光标后面开始输入,A 从行末开始输入
o | O o 下一行插入内容,O 上一行插入内容
r 替换光标位置的字符
R 直接替换输入,直到按下 ESC 为止,类似 Insert 按键
Esc 退出编辑模式,回到查看模式

查看模式>>命令模式

按键 描述
:w 将编辑的数据写入硬盘档案中
:q 离开vim
! 强制的意思
:wq 保存后退出
:x 保存后退出
:q! 不保存强制退出
:w [filename] 另存为 filename
:r [filename] 将另一个文件中内容读入到当前文件中
:! command 暂时离开vim到指令模式下指定一个指令,例如: ! ls
:n 直接跳转到第 n 行
:set nu 显示行号
:set nonu 取消行号