vim有三种模式:
- 一般指令模式(command mode)
在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。 - 编辑模式(insert mode)
按下“i、I、a、A、r、R”等可以进入编辑模式,按Esc可以退出回到一般指令模式。 - 命令行模式(command-line mode)
输入“:”可以进入,用于读取、存档、取代字符、离开vim等。
下面个人归纳这3种模式中常用的指令:
1.一般指令模式:
命令 | 解释 |
---|---|
↑ ↓ ← → | 光标上下左右移动 |
Ctrl + f / Page Down | 屏幕向下移动一页 |
Ctrl + b / Page Up | 屏幕向上移动一页 |
Home / 数字0 | 光标移动到这一列的最前面 |
End / $ | 光标移动到这一列的最后面 |
G | 光标移动到文件最后一列 |
gg | 光标移动到文件第一列 |
/word | 查找文中含义‘word’的字符串 |
n,N | n是在查找动作后再向下查找下一个字符串,N是向上查找 |
:100,200s/aa/bb/g | 查找100列至200列之间的aa,将它替换为bb |
:1,$s/aa/bb/gc | 将文中所有的aa替换为bb,并且提示是否替换 |
ndd | n为数字,表示向下删除多少列 |
nyy | n为数字,表示向下复制多少列 |
y1G | 复制光标所在列到第一列的所有内容 |
yG | 复制光标所在列到最后一列的所有内容 |
p,P | p为将已复制内容复制光标所在的下一列,P为复制到上一列 |
u | 撤销前一个动作 |
Ctrl + r | 重做上一个动作 |
. | 小数点,重复前一个动作 |
2.编辑模式:
命令 | 解释 |
---|---|
i,I | i 为从目前光标所在处插入, I 为在目前所在列的第一个非空白字符处开始插入 |
a,A | a 为从光标所在的下一个字符处开始插入, A 为从光标所在列的最后一个字符处开始插入 |
o,O | o 为在光标所在的下一列处插入新的一列, O 为在光标所在处的上一列插入新的一列 |
r,R | r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止 |
Esc | 退出编辑模式,回到一般指令模式 |
3.命令行模式:
命令 | 解释 |
---|---|
:w | 数据写入硬盘 |
:q,:q! | :q为退出vim,在编辑过文件,但又不想保存,可以用:q!退出vim |
:wq | 保存并退出vim |
ZZ | 没修改则退出,有修改则保存并退出 |
:w 文件名 | 另存为一个新文件 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
区块选择
命令 | 解释 |
---|---|
v | 字符选择,光标经过会反白选择 |
V | 列选择,光标经过会整列反白选择 |
Ctrl + v | 区块选择,可以光标移动选择方形区域数据 |
y | 复制反白区域 |
d | 删除反白区域 |
p | 将复制的区域复制到光标所在位置 |
vim多窗口模式
命令 | 解释 |
---|---|
:sp 文件名 | 在已打开的文件里面输入:sp + 文件名 即可在新窗口打开多一个文件 |
Ctrl + w + ↓ | 切换到下一个文件窗口 |
Ctrl + w + ↑ | 切换到上一个文件窗口 |
Ctrl + w + q | 退出当前窗口 |