1.Vi的工作模式:
命令模式
末行模式
编辑模式
2. Vi打开文件的方式
Vifilename:打开或新建文件,并将光标至于第一行首
Vi+n filename:打开文件,并将光标至于第N行首
Vi +pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
Vi –r filename:在上次使用vi时发生崩溃,恢复filename
Vi filename1 ……filename :打开多个文件,依次进行编辑,可在末行模式下采用filename命令切换所编辑的文件
3.保存和退出vi
:W 保存文件
:w filename保存在filename文件
:q 推出编辑器,如果文件已修改,则使用下面的命令
:q!退出编辑器,且不保存
:wq 退出编辑器,且保存文件
:x退出编辑器,且保存文件
4. 插入文本或行
a:在当前光标位置的右边添加文本
i:在当前光标位置的左边添加文本
A:在当前行的末尾位置添加文本
I:在当前行的开始处添加文本
O:在当前行的上面新建一行
O:在当前行的下面新建一行
s:删除光标后的一个字符,然后开始插入模式
S:删除光标所在的行,然后进入插入模式
R:替换(覆盖)当前光标位置及后面的若干文本
5.移动光标
K 上
J 下
H 左
L 右
6.同一行中光标移动方式
^: 移动到光标所在行的行首
$:移动到光标所在行的行尾
O: 移动到当前行的行首
W:光标右移到下行的开头
b:移动到当前字的字首,如果已经处于字首的,则光标回到上个字的开头
e: 移动到当前字的字喂,如果已经处于字首的,则光标回到下个字的字尾
<n> w:右移n个字
<n> b:左移n个字
7.在页面间移动光标
Ctrl +b:向上翻一页
Ctrl +f:向下翻一页
Ctrl +U:向前翻半页
Ctrl +d:向后翻半页
H:将光标移动到当前屏幕的最上行的行首
xH: 将光标移动到当前屏幕的第x行
G:移动到文章的最后
):由游标所在位置至下一个句子的第一个字母
(:由游标所在位置至该句子的第一个字母
{:由游标所在位置至该段落的最后一个字母
}:由游标所在位置至该段落的第一个字母
8. 删除恢复字符或行
x:删除当前字符
nx:删除从光标开始的n个字符
dd:删除当前行
ndd:向下删除当前行在内的n行
u:撤销上一步操作
U:撤销对当前行的所有操作
9.搜索
/<pattern>:向光标以下搜索pattern字符串
?/ <pattern>:向光标以上搜索pattern字符串
10.设置行号
:set nu 显示行号
:set nonu 取消显示行号
:nu 取得光标所在行号
n+:向下跳n行
n-:向上跳n行
nG:跳到行号为n的行
11.复制和粘贴
yy:将当前行复制到缓存区,也可以使用ayy复制,其中a为缓冲区,a也可以替换为a到z的任意字符,可以完成多个复制任务
nyy: 将当前行下的n行复制到缓存区,也可以使用anyy复制,其中a为缓冲区,a也可以替换为a到z的任意字符,可以完成多个复制任务
yw:复制从光标开始到字尾的字符
nyw:复制从光标开始的n个字
y^:复制从光标到行首的内容
y$:复制从光标到行尾的内容
p:粘贴粘贴板里的内容到光标后,如果使用了前面的自定义缓冲区,建议使用ap进行粘贴
P:粘贴粘贴板里的内容到光标前,如果使用了前面的自定义缓冲区,建议使用ap进行粘贴
12.替换操作
:s/old/new 用new替换行中首次出现的old
:s/old/new/g 用new替换行中所有的old
:n,m s/old/new/g用new替换行中从n行到m行里所有的old
:%s/old/new/g用new替换当前文件里的old
13.文件格式转换
UNIX2dos 把Linux的行尾符号(^J)转换成DOS中是使用的(^M^J)
dos2UNIX 把Windows文档中的行尾符号转为(^J)