目录
模式种类
- 一般模式
以vi打开一个文件就直接进入一般模式(默认模式)。在此模式中,可以使用上下左右按键来移动光标,可以删除字符或整行,也可以复制、粘贴文件数据。
- 编辑模式
一般模式无法编辑文件的内容。按下“i,I,o,O,a,A,r,A”等任何一个字母后进入编辑模式。通常按下按键时,界面的左下方会出现INSERT或REPLACE的字样,此时才可以编辑。按下ESC退出编辑模式回到一般模式。
- 命令行模式
在一般模式中按下“:、/、?”三个中任何一个按键,就可以将光标移动到最下面一行。在命令行模式中,可以进行数据的查找,例如读取、保存、大量替换字符、离开vi、显示行号等操作。同样按ESC退出。
主要按键说明
移动光标 | [number]+k/j/h/l(↑/↓/←/→) | 数字后跟kjhl或者上下左右,光标向上/下/左/右移动n次 |
[ctrl]+[f] | 屏幕向下移动一页,相当于[Page Down] | |
[ctrl]+[b] | 屏幕向上移动一页,相当于[Page Up] | |
0/[HOME] | 移动到此行最前面的字符处 | |
$/[END] | 移动到此行最后面的字符处 | |
G | 移动到此文件的最后一行 | |
gg | 移动到此文件的第一行 | |
[number]+G | 移动到此文件的第n行 | |
[number]+[Enter] | 光标向下移动n行 | |
u | 复原前一个操作 | |
[Ctrl]+r | 重做上一个操作 | |
. | 重复前一个操作 | |
查找与替换 | /word(?word) | 向下(向上)寻找一个名称为word的字符串,按下n向下(向上)继续查找关键字 |
:n1,n2s/word1/word2/g | 在第n1与n2行之间寻找word1,并替换为word2 | |
:1,$s/word1/word2/g | 从第一行到最后一行查找word1并替换为word2 | |
:1,$s/word1/word2/gc | 从第一行到最后一行查找word1并询问用户是否替换为word2 | |
删除、复制与粘贴 | x(X) | 在一行字中,x为向后删除一个字符,X为向前删除一个字符 |
dd | 删除光标所在的那一整行 | |
ndd | n为数字,删除光标所在的向下n行 | |
yy | 复制光标所在的那一行 | |
nyy | n为数字。复制光标所在的向下n行 | |
p,P | p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行 | |
进入插入或替换的编辑模式 | i,I | 进入插入模式: i为从目前光标所在处插入;I为在目前所在行的第一个非空格符处开始插入 |
a,A | 进入插入模式: a为从目前光标所在的下一个字符处开始插入;A为从光标所在行的最后一个字符处开始插入 |
|
o,O | 进入插入模式: o为在目前光标所在的下一行处插入新的一行;O为在目前光标所在处的上一行插入新的一行 |
|
r,R | 进入替换模式: r只会替换光标所在的那一个字符一次;R会一直替换光标所在的文字,直到按下[Esc]为止 |
|
[Esc] | 退出编辑模式,回到一般模式中 | |
命令行的保存、离开等命令 | :w | 将编辑的数据写入硬盘文件中(:w!为强制写入) |
:q | 离开vi(:q!为强制离开) | |
:wq | 保存后离开(:wq!) | |
:set nu | 显示行号,设置之后,会在每一行的前缀显示该行行号 | |
:set nonu | 取消行号 | |
块选择 | v | 字符选择,会将光标经过的字符反白处理 |
V | 行选择,会将光标经过的行反白处理 | |
[Ctrl]+v | 块选择,可以用长方形的方式选择数据 | |
y | 复制反白处 | |
d | 删除反白处 | |
多文件编辑 | :n | 编辑下一个文件 |
:N |
编辑上一个文件 | |
:files | 列出目前vim打开的所有文件 | |
多窗口下的功能按键 | :sp [filename] | 打开一个新窗口,如果有加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一文件内容(同步显示) |
[ctrl]+w+j [ctrl]+w+↓ |
先按下[ctrl]不放,再按下w后松开所有的按键,然后再按下j(或向下箭头键),则光标可移动到下方的窗口 | |
[ctrl]+w+k [ctrl]+w+↑ |
同上,光标移动到上方的窗口 | |
[ctrl]+w+q | 移动窗口后离开 |