VIM
----------------------------------------------------------------------------------
恢复由于中断而丢失的文件
当发生中断或主机终端断开时,你可能没有保存文件而非正常地退出vi。但是,系统在缓冲区中留有副本,当你重新启动系统时,可在vi
命令后加上选项 r 来恢复中断前的文件。
vi -r filename
将一个文件插入另一个文件中
vi为将一个文件“读取”(插入)到正在编辑的文件提供了方便。该命令的通用格式是:
:line# r filename
如果不指定一个行号,vi将该文件插入到当前光标的位置上。
例如,如果要将文件orwell插入到文件paint的第84行,可以键入:
:84 r orwell
或者,可以将光标定位到第84行,然后键入:
:r orwell
编辑多重文件
vi允许编辑多重文件。例如,在编辑paint的同时再编辑文件orwell:
1、首先,保存paint的当前工作。键入:w并按下Return
2、要编辑orwell,则键入:n orwell并按下Return
3、对orwell进行更改并保存
4、当做完orwell并已保存时,有三种方式可供选择:
退出vi。键入:q并按下Return。
返回到paint。键入:n# 并按下Return
使用命令:n# 在两个文件中前后交换
编辑一系列文件
要想编辑一系列文件,则当从命令提示符下启动vi时,需在vi命令之后列表文件名:
: vi paint orwell
文件以它们被列表的次序显示出来,第一个出现的是paint。在完成对paint的编辑时,键入:n,进入下一个文件orwell。要跳转到下
一个文件而不保存对当前文件所做的更改,则键入:n! 来代替:n。
如果有一系列带有相关名字的文件(例如,testl、test2、test3),可以使用通配符来指定一组文件:
:$ vi test*
这些文件按文件名的字母顺序出现,以便编辑。
在文件之间复制行
为将行从一个文件复制到另一个文件、需按下列顺序来做:
1、编辑第一个文件。
2、将所需的行保存到命名缓冲区中,使用yank命令。例如,在缓冲区a中保存10行,则键入a10y。
3、不退出vi,编辑下一个文件(在本示例中是orwell):
:n orwell
~ 更改字母的大小写(大写或小写)
u 撤销前一个命令
U 撤销对当前行所做的所有更改
: u 撤销前一个最后行命令
删除文本
x 删除光标处字符 X 删除光标左边字符
dw 删除词(或光标右边的部分词)
dd 删除光标所在行
D 删除光标右边的部分行
dG 删除到文件结尾
d1G 从文件开始到光标处
: 5,10d 删除行5—10
复制和移动文本
yy 移动或复制行
Y 移动或复制行
p 在当前行下面放置被复制或被删除的行
P 在当前行上面放置被复制或被删除的行
: 1,2 co 3 复制行1-2并放置到行3之后
: 4,5 m 6 移动行4-5并放置到行6之后
设置行号
: set nu 显示行号
:set nonu 隐藏行号
设置区分大小写
:set ic 查找应忽略大小写
:set noic 查找应区分大小写
查找一行
G 转向文件的最后一行
1G 转向文件的第一行
21G 转向第21行
查找和替换
/string 查找串
?String 向后查找串
n 沿着查找方向查找下一个出现的串
N 沿着查找方向查找前一个出现的串
清除屏幕
Ctrl-L 清除(刷新)杂乱的屏幕
将一个文件插入到另一个文件中
:r filename 在光标之后插入(读取)文件
:34 r filename 在34行之后插入文件
保存和退出
:w 保存更改(写缓冲区)
:w filename 将缓冲区写入命名的文件
:wq 保存更改并退出vi
ZZ 保存更改并退出vi
:q! 退出但不保存更改
:l1,l2 w filename 将文本中从行1到行2的内容保存到一个文件中。
管理进程:
----------------------------
例:$ ps - ef
……PID PPID …… tty …… command
46 1 …… 005 …… sh
56 46 …… 005 …… sort bigfile >out &
61 46 …… 005 …… ps -ef
$ kill 56
恢复VI 文件:
以下列表提供对基本vi命令的一个方便的参考。
命令 含义
vi filename 打开或创建文件
vi 打开新文件,以后再命名
vi-r filename 恢复被毁坏的文件
view filename 打开文件只读
更改文本
cw 更改光标右边的词(部分词)
cc 更改行
C 从光标处更改到行尾
s 从光标处向前用字符替换串
r 用另一个字符替换光标处的字符
r Return 断开行
J 合并当前行和下面行
xp 光标处字符与其右边字符颠倒
~ 更改字母的大小写(大写或小写)
u 撤销前一个命令
U 撤销对当前行所做的所有更改
: u 撤销前一个最后行命令
删除文本
x 删除光标处字符 X 删除光标左边字符
dw 删除词(或光标右边的部分词)
dd 删除光标所在行
D 删除光标右边的部分行
dG 删除到文件结尾
d1G 从文件开始到光标处
: 5,10d 删除行5—10
复制和移动文本
yy 移动或复制行
Y 移动或复制行
p 在当前行下面放置被复制或被删除的行
P 在当前行上面放置被复制或被删除的行
: 1,2 co 3 复制行1-2并放置到行3之后
: 4,5 m 6 移动行4-5并放置到行6之后
设置行号
: set nu 显示行号
:set nonu 隐藏行号
设置区分大小写
:set ic 查找应忽略大小写
:set noic 查找应区分大小写