什么是 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 | 取消行号 |