前言
文中:
[Enter]等表示按键
n加粗等表示数字
一、模式及切换方式
1.命令模式
(1)启动VIM即进入命令模式
(2)在输入模式下,按 ESC 切换到命令模式
2.输入模式
在命令模式下,按 i 切换到输入模式
3.底线命令模式
在输入模式下,按 : 切换到底线命令模式
二、命令模式
1.移动命令
按键 | 操作结果 |
---|
h | 光标向左移动一个字符 |
j | 光标向下移动一个字符 |
k | 光标向上移动一个字符 |
l | 光标向右移动一个字符 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
【Ctrl】 f | 屏幕向下移动一页 |
【Ctrl】 b | 屏幕向上移动一页 |
【Ctrl】 d | 屏幕向下移动半页 |
【Ctrl】 u | 屏幕向上移动半页 |
n [space] | 光标向右移动这一行的n个字符 |
0或【Home】 | 光标移动到这一行的最前字符处 |
$或【End】 | 光标移动到这一行的最后字符处 |
H | 光标移动到这一屏幕的最上方那一行第一个字符处 |
M | 光标移动到这一屏幕的中间那一行第一个字符处 |
L | 光标移动到这一屏幕的最下方那一行第一个字符处 |
G | 光标移动到这一文件的最后一行 |
n G | 光标移动到这一文件的第n行 |
gg | 光标移动到这一文件的第一行 |
n | 光标向下移动n行 |
2.搜索替换命令
按键 | 操作结果 |
---|
/word | 向光标之下寻找一个名为word的字符串 |
?word | 向光标之上寻找一个名为word的字符串 |
n | 重复上一个搜索动作 |
N | 反向进行上一个搜索动作 |
3.删除复制命令
按键 | 操作结果 |
---|
x | 向后删除一个字符 |
X | 向前删除一个字符 |
n x | 连续向后删除n个字符 |
dd | 删除光标所在的那一行 |
n dd | 删除光标所在的向下n行 |
d1G | 删除光标所在到第1行的所有行 |
dG | 删除光标所在到最后一行的所有行 |
d$ | 删除光标所在处到该行最后一行字符 |
d0 | 删除光标所在处到该行第一行字符 |
yy | 复制光标所在行 |
n yy | 复制光标所在的向下n行 |
y1G | 复制光标所在到第1行的所有行 |
yG | 复制光标所在到最后一行的所有行 |
y$ | 复制光标所在处到该行最后一个字符 |
y0 | 复制光标所在处到该行第一个字符 |
p | 将已复制的数据粘贴在光标下一行 |
P | 将已复制的数据粘贴在光标上一行 |
J | 将光标所在行数据与下一行数据结合为同一行 |
c | 重复删除多个数据(如:10cj 向下删除10行) |
4.其它命令
按键 | 操作结果 |
---|
u | 撤销前一个动作 |
【Ctrl】 r | 重复前一个动作 |
. | 重复前一个动作 |
三、输入模式
按键 | 操作结果 |
---|
字符按键 | 输入字符 |
【Enter】 | 换行 |
【Backspace】 | 删除光标前一个字符 |
【Delete】 | 删除光标后一个字符 |
方向键 | 移动光标 |
【Home】或【End】 | 移动到光标行首或行尾 |
【PageUp】或【PageDown】 | 向上或向下翻页 |
【Insert】 | 切换光标输入或替换 |
【Esc】 | 进入命令模式 |
四、底线命令模式
按键 | 操作结果 |
---|
:w | 保存数据 |
:w! | 强制保存数据 |
:q | 退出 |
:q!(ZQ) | 强制退出(不保存) |
:wq(ZZ) | 保存并退出 |
:w {filename} | 将编辑的数据保存到另一个文件 |
:r {filename} | 将编辑的数据读入到另一个文件的数据 |
:n1,n2 w {filename} | 将n1行到n2行的数据保存到另一个文件 |
:!command | 暂时离开vim到终端执行命令 |
:n1,n2s/word1/word2/g | 在n1行到n2行之间查找word1字符串并用word2取代 |
:1,$s/word1/word2/g | 在第一行到最后一行之间查找word1字符串并用word2取代 |
:%s/word1/word2/g | 在第一行到最后一行之间查找word1字符串并用word2取代 |
:1,$s/word1/word2/gc | 在第一行到最后一行之间查找word1字符串并用word2取代并提示是否确认 |
:%s/word1/word2/gc | 在第一行到最后一行之间查找word1字符串并用word2取代并提示是否确认 |
:e {filename} | 打开文件 |
:h | 打开帮助 |
:new | 新建文件 |
:n1,n2s/^/注释符/g | 在n1行到n2行之间批量增加注释符 |
:n1,n2s/^注释符//g | 在n1行到n2行之间批量删除注释符 |
:!command举例
输入:!ls/home 即可在VIM下以ls输出信息