分享
 
 
 

循序渐进UNIX--VI编辑程序入门(3) vi全接触

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

http://91mail.51.net提供??需要完整的pdf文档请到http://91mail.51.net下载

一、UNIX系统编辑器的概述

* ed :UNIX系统中原始的行编辑器。

* ex :行编辑器,是 ed 编辑器的扩充。

* vi :全屏幕编辑器,为UNIX系统的主

要编辑器,它也是 ed 的超集。

* emacs:全屏幕编辑器,不是UNIX系统

版本4的组成部分,是独立的编

辑程序。

3.1、 vi的启动与退出

1、vi 的启动

输入vi命令后,便进入全屏幕编辑环境,此时

的状态为命令方式。

① vi 光标定在该缓冲区第一行第一列位置

② vi example 光标定在缓冲区第一行第一列位置

③ vi + example 光标定在文件最后一行第一列位置

④ vi +N example 光标定位在文件第N行第一列的

位置(N:为数字)

⑤ vi +/string example 光标定位在文件中

第一次出现字符串string的行首位置

1.1 vi 的应用方式

* vi的名字取自于visual。

* 有两种操作方式:命令方式、插入方式和ex转义方式

* 命令方式下输入的大、小写是敏感的。

二、 vi的启动与退出 (续)

2、vi 的退出

建议 首先键入“ESC”键,以确保当前vi的

状态为命令方式,输入下列命令,退出vi。

① :w 将编辑缓冲区的内容写入文件

:q 退出vi

② :wq 将上面两步操作可以合成一步来完成。

③ :x 功能同上。

④ :q 退出vi,此时的正文没有被更改过。

⑤ :q! 强行退出vi,使更新内容不写回文件。

三、光标在窗口中移动

注释

字 : 是由空格或标点符号分开的字母序列。

句子 :是以句号(.)、问号(?)或感叹号

(!)结束的字符序列,句子之间由两个

空格或一个回车分开。

段落 :一个段落前后各有一个或多个空白行。

三、光标在窗口中移动(续)

1、 字符及行间移动

命 令 结果

—————————— ——————————

↑ 或 k 向上移一行

↓ 或 j 向下移一行

← 或 h 或 退格键 左移一个字符

→ 或 l 或 空格 右移一个字符

o 移到当前行的开始

$ 移到当前行的结尾

+ 或 回车符 移到下一行的开始

- 移到上一行的开始

三、光标在窗口中移动 (续)

2、 其它单位的移动

命 令 结果

——————— —---------—————————

w 移到下一个字或标点符号

W 移到下一个字

e 移到这个字或标点符号的结束

E 移到字的下一结尾

b 回到字或标点符号的开始

B 移回到字的开始

) 移到下一个句子的开始

( 移到这个句子的开始

} 移到下一段落的开始

{ 移到这一段落的上一开始

四、在缓冲区中移动窗口

命令 结果

——-——— --—------—————————

CTRL-F 向前(上)移动一满屏幕

CTRL-D 向前(上)移动半屏幕

CTRL-B 向后(下)移动一满屏幕

CTRL-U 向后(下)移动半屏幕

H 光标移动到屏幕顶部

M 光标移动到屏幕中间

L 光标移动到屏幕底部

注意 可在这些命令前加入数字n作为前缀,使相应命

令执行n次。但nG使光标定位在第n行。

五、光标在正文中的移动

命令 结果

——-——— --—------—————————

G 光标移动到文件的尾部

nG 光标移动到文件的第n行

: 0 光标移动到文件的第1行

: 1 光标移动到文件的第1行

: n 光标移动到文件的第n行

: $ 光标移动到文件的尾部

/string 光标向前移动到string首

?string 光标向后移动到string首

六、增加正本

命令 结果

——-——— ----------—------—————————

a 将输入文本插入在光标之后

A 将输入文本插入在当前行的行尾

i 将输入文本插入在光标之前

I 将输入文本插入在当前行的开始

o 将在当前行的下一行处打开一新行

O 将在当前行的上一行处打开一新行

注意 ESC:使编辑状态从输入方式切换到命令方式

七、修改正本

命令 结果

——-— ---------------------—------—————————

r 替换当前字符,不需按ESC。

R 从当前字符开始进行替换,至ESC键为止。

nC 对从当前字符开始的n行字符进行替换,

直至键入ESC键为止。

nc$ 同 nC。

ncw 对当前字符开始的n个字进行替换操作,

直至键入ESC键为止。

注意 n 为数字,为 1 时可省略。

七、修改正本 (续)

命令 结果

——-— ------------------—------—————————

ncc 对从当前字符开始的n行字符进行替换,

直至键入ESC键为止。

ns 替换从当前字符开始的n个字符,直至键入

ESC键为止。

nS 对从当前行开始的n行字符,进行替换,

直至键入ESC键为止。

J 将当前行和下一行连接起来。

注意 n 为数字,为 1 时可省略。

八、删除正本

1. x 与 X 命令的使用

命令 结果

——-— --------------—------—————————

x 删除当前字符。

nx 删除从当前字符开始的n个字符。

X 删除当前字符的前一个字符。

nX 删除当前字符的前n个字符。

注意 n 为数字,为 1 时可省略。

八、删除正本 (续)

2. d与D命令的使用

用来将指定范围内文本删除,并存入缓冲区。

命令 结果

——-— --------------—------—————————

ndw 删除以当前字开始的n个字。

nd$ 删除以当前字符开始的n行字符。

ndd 删除从当前行开始的n行。

D 与d$同义。

d) 删除到下一句的开始。

d} 删除到下一段的开始。

d 回车 删除两行。

九、移动与复制正本

1. m命令的使用

将指定范围的文本移动到指定位置。格式如下:

<起始行号>,<结束行号> m <目标行号>

例:: 3 , 14 m 56

: 7 , 52 m 0

2. t命令的使用

将指定范围的文本复制到指定位置。格式如下:

<起始行号>,<结束行号> t <目标行号>

例: 1 , 14 t 60

7 , 52 t $

九、移动与复制正本 (续)

3. y与Y命令的使用

将指定范围的文本复制到缓冲区,但不删除其内容。

命令 结果

——-— --------------—------—————————

nyw 复制从当前字符开始的n个字;

ny$ 复制从当前字符开始的n行字符;

Y 与y$同义;

y) 复制到下一句的开始;

y} 复制到下一段的开始;

nyy 复制从当前行开始的n行;

y 回车 复制两行;

十、重复和取消操作

命令 结果

——-— ----------------------—------—————————

. 重复上一次所执行的命令。

u 取消最后一次所做的修改或删除。

U 取消此次到当前行来做的所有修改。

p 恢复当前缓冲区中内容。如缓冲区中内容是整

行信息,则放到当前行下面的一个新行;否则 将缓冲区的内容放到光标位置右边。

P 同p操作。恢复整行信息时,放到当前行上面的

一个新行;否则,放到光标位置左边。

:e! 重新编辑。废弃对这次文件所做的全部修改,

重新从盘中读入该文件,并开始编辑。

十一、检索和替换

命令 结果

——-— ----------------------—------—————————

/string 从当前位置向后检索字符串string,并将光标

定位在该串起始位置(向后循环检 索 )。

?string 从当前位置向前检索字符串string,并将光标

定位在该串起始位置( 向前循环检索)。

// 重复上一条检索命令,但方向是向后检索。

?? 重复上一条检索命令,但方向是向前检索。

n 重复上一条检索命令,而不管其检索方向。

(即检索方向不变)。

N 重复上一条检索命令, 但检索方向改向。

:g/string 检索字符串string,光标定位在第一次检索到 的string所在行的行首。

十一、检索和替换 (续)

1. 字符串替换命令格式1 :[addr]s/s1/s2/ [option]

[addr] 表示检索范围,省略时表示当前行。

如: “1,20” :表示从第1行到20行;

“%” :表示整个文件,同“1,$”;

“. ,$” :从当前行到文件尾;

s 为替换命令;s1 要被替换的串;s2 为替换的串;

option : ? g 表示全局替换; ‚ c 进行确认 ;

? p 替代结果逐行显示(Ctrl + L恢复屏幕);

„ 省略时仅对每行第一个匹配串进行替换;

2. 字符串替换命令格式2 :g/s1/s//s2/ [option]

十二、其他命令

命令 结果

------—--—-— --------------—------————————

:set number 显示行号。

:set nonumber 不显示行号。

:set all 显示vi各选项的设置情况。

:f 显示当前文件及工作缓冲区状况。

:r filename 将名为filename的文件内容插入到

缓冲区当前行的下面。

:r ! cmd 执行命令cmd,并将结果插入到缓冲

区当前行的下面。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有