本文只包含一些最基本最常用的操作
普通模式到编辑模式
按键 | 操作 |
---|
i, I | 进入输入模式(Insert mode):i 为『从目前光标所在处输入』; I 为『在目前所在行的第一个非空格符处开始输入』 |
a,A | 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』 ;A 为『从光标所在行的最后一个字符处开始输入』 |
o,O | 进入输入模式(Insert mode):o 为『在目前光标所在的下一行处输入新的一行』; O 为『在目前光标所在处的上一行输入新的一行』 |
r,R | 进入取代模式(Replace mode):r 只会『取代光标所在的那一个字符一次』;R会『一直取代光标所在的文字,直到按下 ESC 为止 』 |
Esc | 返回普通模式 |
输入上述操作命令后,在 vim 画面的左下角处会出现『–INSERT–』或『–REPLACE–』的字样,提示用户当前所在模式
普通模式到指令行模式
按键 | 操作 |
---|
:w | 将编辑过的数据写入硬盘中 |
:w! | 若文件属性为『只读』时,强制写入该档案 |
:q | 退出(对文件进行修改但未写入时无效) |
:q! | 不保存,强制退出 |
wq | 保存并退出 |
光标移动
按键 | 操作 |
---|
h或左箭头(←) | 光标向左移动一个字符 |
j或下箭头(↓) | 光标向下移动一个字符 |
k或上箭头(↑) | 光标向上移动一个字符 |
l或右箭头(→) | 光标向右移动一个字符 |
Ctrl+f或[PageDown] | 向下一页 |
Ctrl+b或[PageUp] | 向上一页 |
0 或功能键[Home] | 光标移至行首 |
$ 或功能键[End] | 光标移至行尾 |
G | 光标移至最后一行 |
nG | n为数字,光标移至第n行 |
gg | 光标移至第一行 |
n[Enter] | n 为数字,光标向下移动 n 行 |
复制粘贴与删除
删除
按键 | 操作 |
---|
x,X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) |
dd | 删除光标所在行 |
ndd | n为数字,删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 |
复制
按键 | 操作 |
---|
yy | 复制光标所在行 |
nyy | n 为数字,复制光标所在的向下 n 行,例如 20yy 则是复制 20 行 |
粘贴
按键 | 操作 |
---|
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在光标上一行 |
其他
按键 | 操作 |
---|
u | 复原前一个动作 |
Ctrl+r | 重做前一个动作 |
. | 重复前一个动作 |
搜索替换
按键 | 操作 |
---|
/word | 向光标之下寻找一个名称为 word 的字符串 |
n | 重复前一个搜寻的动作。向下搜寻下一个模式匹配的字符串 |
N | 重复前一个搜寻的动作。 向下搜寻下一个模式匹配的字符串 |
:1,$s/word1/word2/g 或 :%s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 。 |
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 。在取代前显示提示字符给用户确认 (confirm) 是否需要取代! |
键位图