介绍VI编辑器一些高级功能
2010-02-02 08:43:07| 分类: Linux | 标签: |字号大中小 订阅
一、介绍在VI编辑器里如何快速切换在整个档案里的位置
1、在VI编辑器的命令模式(command mode)下:执行以下指令
G 光标跳到档案的最后一行;
1G 光标跳到档案的第一行;
ctrl – d 光标会向下跳半个屏幕,也就是以屏幕为准向下跳半页;
ctrl – u 光标会向上跳半个屏幕,也就是以屏幕为准向上跳半页;
二、介绍在VI编辑器里如何快速切换在整个屏幕上的位置
1、在VI编辑器的命令模式(command mode)里:执行以下指令
H 光标会跳到屏幕上的第一行;
M 光标会跳到屏幕的正中间那一行:
L 光标会跳到屏幕的最后一行;
z 再按Enter(回车) 会让目前光标所在的这一行变成屏幕上的第一行;
z 再按 –(减号) 会让目前光标所在的这一行变成屏幕上的最后一行;
三、介绍在VI编辑器里如何使用Filtering的功能
1、Filtering的功能可以将指令执行后输出的信息插入到目前正在编辑的档案里,也可以将档案里的资料当作是指令的输入来使用。
2、在VI编辑器的命令模式(command mode)下示例如下:
!!ls –l 将当前目录的档案列表信息插入到当前编辑的档案里;如下图:
!!date 如果想在信息中插入时间,可以使用这个指令,像上面的图例一样,将时间输入进来;
!}sort 这行输入后也是会显示一些其它的符号,sort指令是作排列用的,这条指令执行后,会发现档案的内容有作排列;
!}fmt –w60 这行输入后也是会显示一些其它的符号,fmt –w60是将段落的宽度设为60个字,也就是当超过60个这就自动换行;
四、在VI编辑器里的延伸模式下如何搜询并同时替换某个关键字
1、在VI编辑器里,是使用sed指令的设计来搜询并同时替换某个关键字
2、有以下几种预设的定置方式,也就是设定搜询的范围:
(1)未设定定址范围 只会对目前这一行做搜询及替换的动作;
例: :s/This/That 这行指令的意思是 :s 表示要使用sed指令的设计来搜询同时替换某个关键字,只能将当前光标所在行的第一个This替换成That,如果想让这一行的所有This都替换为That,在前面的指令最后面加上 /g 就可以了。g 代表一行中有多个关键字会全部替换。
(2)1,10 如果定址范围设定为 1,10 则会对第一行到第十行做搜询及替换的动作,其中的逗号是用来区隔从哪里到哪里的分隔符;
例: :1,10s/This/That/g 将从第一行到第十行的所有This替换成为That;
(3)1,$ 或 % 如果定址范围定为1,$或%,会对档案的所有内容做搜询及替换的动作;
例: :1,$/This/That/g 将整个档案中的This 替换为 That
:%s/This/That/g 将整个档案中的This 替换为 That
(4).,.+10 如果定址为点 (.)表示当前光标所在行,.+10表示当前行下面的10行,
例: :.,.+10s/This/That/g 表示从当前行到当前行向后的第十行进行替换的动作,这行指令一共会替换11行(这11行包括当前光标所在的1行加上当前行下面的10行)。其中加号也可以换成减号表示向上(例::.,.-10s/This/That/g )做反向的替换,但替换前会询问是否替换。
五、介绍VI编辑器里一些高级读档及存档的功能
在延伸模式下(也就是输入冒号后进入的模式)
1、:r file1 将file1档案的内容直接读到当前编辑的档案中;
2、:1,20w file2 其中1,20表示第1行到20行的范围,w是写入的意思,file2表示file2档案,这一行指令的作用是把1到20的内容写入到file2的档案里;
3、:1,$w file3 其中1,$表示第1行到最后一行的范围,w是写入的意思,file3表示file3档案,这一行指令的作用是把当前档案内容的所有内容写入到file3档案里;
4、:1,20w >> file4 其中1,20表示从第1行到第20行的范围,w是写入的意思,>>表示追加的意思这样就不会覆盖原有的资料,file4表示file4档案,这一行指令的作用是把第1行到第20行内容追加到file4的档案里;
以下是当使用VI编辑器打开多个档案时,所使用的功能:
5、:n 切换到下一个档案;
6、:rew 回到第1个档案上;
7、:n# 在最近工作过的两个档案之间作切换;
六、介绍设定VI编辑器里面的设定值
1、:set 可以看到少数的重要设定选项;
2、:set all 可以看到所有的设定选项;
例如:noignorecase 这个选项(前面的no表示未启用这个选项),表示当前区分大小写,
:set ignorecase 这行设定表示忽略大小写
nonumber 表示在VI编辑器里不显示行号;
:set number 设定在VI编辑器里显示行号
3、如果要取消某个选项设定,前面加上no即可;
例: 取消显示行号 :set nonumber