Vi保存于退出 | |||
命令 | 功能 | ||
:q | 退出没有修改的文件 | ||
:q! | 强制退出,且不保存修改的部分 | ||
:w | (wire)保存文件,但不退出 | ||
:x(等价于:wq) | (exit)保存并退出 | ||
:w File | 另存为file给出的文件名不退出 | ||
:r File | (read)读入file指定的文件 | ||
Vi模式切换命令 | |||
命令 | 功能 | ||
a | (appand)进入编辑模式,从当前光标之后的位置开始插入键盘输入的字符 | ||
i | (insert)进入编辑模式,从当期光标之前的位置开始插入键盘输入的字符 | ||
o | (open)编辑模式,并插入一个新行,以后键盘输入的字符就从新行的位置开始 | ||
ESC | 进入命令模式 | ||
:!Command | 在VI中执行外部命令,按回车键再回到vi中(如:!pwd) | ||
A | 行尾转插入 | ||
I | 行首转插入 | ||
O | 光标上一行出现空行 | ||
Vi拷贝与黏贴命令 | |||
命令 | 功能 | ||
[N]x | (expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区) | ||
[N]dd | (delete)删除从光标位置开始的连续N个行(并复制到编辑缓冲区) | ||
[N]yy | (yank)复制从光标位置开始的连续N个行(并复制到编辑缓冲区) | ||
p或P | (put)从编辑缓冲区复制文本到当前光标的位置 | ||
u | (undo)取消上一次操作 |
Vi光标命令 | |||
命令 | 功能 | ||
h | 方向键,向左移动一个字符的位置,相当于键“左” | ||
j | 方向键,向下移动光标到下一行的位置,相当于键“下” | ||
k | 方向键,向下移动光标到上一行的位置,相当于键“上” | ||
l | 方向键,向右移动一个字符的位置,相当于键“右” | ||
:N | 移动光标到第N行(N待定) | ||
1G | 移动光标到文件的第一行 | ||
G | 移动光标到最后一行设置显示行号 | ||
:set number | 设置显示行号 | ||
:set | 取消显示行号 | ||
Vi的查找命令 | |||
/string查找字符串 | |||
n继续查找 | |||
N反向继续查找 | |||
支持正则表达式比如:/^the,/end$ | |||
Vi替换命令 | |||
命令(str1为old,str为new) | 功能 | ||
:s/str1/str2/ | 用str2替换str1,只替换该行的第一个str1 | ||
:s/str1/str2/g | 用str2替换str1,替换该行的所有str1 | ||
:.,$s/str1/str2/g | 用str2替换str1,将从光标所在行到最后一行的str1替换为str2 | ||
:1,$s/str1/str2/g | 用str2替换str1,将从第一行到最后一行的str1替换为str2 |
Vi复制和剪切命令 | |||
命令 | 功能 | ||
y0 | 将光标至行首的字符拷入剪贴板 | ||
y$ | 将光标至行尾的字符拷入剪贴板 | ||
d0 | 将光标至行首的字符剪切入剪贴板 | ||
d$ | 将光标至行尾的字符剪切入剪贴板 | ||
:m,n y | 块拷贝,m行到n行拷入 | ||
:m,n y | 块剪切,m行到n行剪切 |