8_vi编辑器的高级用法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
34
复制行:yy,p或P
35
复制行:yy,p或P
使用光标移动键,将光标放到最后1行上。 按P键,vi复制临时缓冲区的内容到当前行上。
36
vi操作符的域
文本块:一个字符、一个字、一行、一 句、其他指定的字符集。 许多vi命令只在一个文本块上操作。 组合使用vi命令和域控制键可以更好地控 制编辑任务。
31
移动行:dd,p或P
32
移动行:dd,p或P
使用光标移动键,将光标放到第1行的任 意字符上。
按P键,vi将被删除的行放到当前行上。
33
复制行:yy,p或P
使用复制和put操作符,可以将文本从文件的
一个位置复制到另一个位置。
按yy键,vi将当前行复制到临时缓冲区。
使用光标移动键,将光标放到第1行上。 按p键, vi复制临时缓冲区的内容到当前行下。
用户启动vi时,可以给出多个文件名。 每当结束一个文件的编辑时,就可以编辑 下一个文件而不用重新启动vi。
使用:n(next)命令启动编辑下一个文件。
使用:ar命令查看文件名列表。
17
编辑多个文件
若上一个文件修改后未保存,vi就会显示如下 信息: No write since last change(:next ! overwrite)
The Screen and Buffers After Second Delete
Figure 6-3
59
复制后的屏幕显示和缓冲区情况
用户复制的文本也存在临时缓冲区中。将光标放在第 一行上,输入yy,vi将复制的行放入缓冲区1。
60
put命令后的屏幕 显示和缓冲区情况
输入”2p,vi将缓冲区2的内容复制到光标位置之后。
37
vi操作符的域
域 $ e 或w b 功能 标识域为从光标位置开始到当前行尾 标识域为从光标位置开始到当前字尾 标识域为从光标位置前到当前字首
0(零) 标识域为从光标位置前到当前行首
38
vi操作符的域
使用删除操作符和域控制键 使用复制操作符和域控制键 使用修改操作符和域控制键
39
使用删除操作符和域控制键
如“9p就可以找回缓冲区9的内容,将缓 冲区9的内容复制到光标位置。 指定缓冲区的格式为:
“np或”nP(双引号+n+p或P)
55
n表示缓 冲区号
数字编号缓冲区:示例
使用vi在Chapter6目录下创建一个文件 buffer,内容如下: AAAAAAAAAA 22222222222222 BBBBBBBBBB 33333333333333 CCCCCCCCCC
使用光标移动键,将光标移到第一行行尾。按P键,vi将被复 制的文本从临时缓冲区复制到光标位置之前。
48
使用修改操作符和域控制键
c操作符组合了插入和修改功能,它将vi从命令
模式转换到文本输入模式。
按c键后,可以从光标位置开始输入文本,文 本向右移动,必要时折行。
按Esc键回到命令模式。
49
使用修改操作符和域控制键
21
编辑多个文件
输入:n并按回车键,开始编辑file2文件。
22
编辑多个文件
输入:ar并按回车键,显示文件名。当 前文件是file2,在括号中。
23
编辑多个文件
如果用户输入:n,而命令行上没有要打 开的文件,vi就会显示如下信息。
No more files to edit
24
在vi编辑器中编辑另一个 文件:使用e(edit)命令
d$:删除从光标位置开始到当前行尾的文本。 按d$键,vi删除从光标位置开始到当前行尾的 文本,并将光标移到字母by后面的空格上。
40
使用删除操作符和域控制键
d0:删除从光标位置之前到当前行首的文本。
按d0键,vi删除相应文本,光标停留在字母m上。
41
使用删除操作符和域控制键
dw:删除光标位置后的一个字。
使用n!命令可以忽略这个提示信息。
18
编辑多个文件
创建文件file1、file2、yourfirst
19
编辑多个文件
$vi file1 file2
2 files to edit
“file1” 2 lines,22 characters
20
编辑多个文件
输入:ar并按回车键,显示文件名。当 前文件在括号中。
6
启动vi编辑器
在vi编辑器中实现”“文件另存为”
$vi myfirst :w yourfirst或:wq yourfirst可将myfirst内容 保存到yourfirst ,原文件保持不变。
7
使用vi的启动选项
只读选项-R
命令选项-c
8
只读选项-R
该选项允许逐行查看文件内容,但不能 修改文件。
56
vi编辑器的9个数字编号缓冲区
在没有做任何编辑操作的情况下,用户屏 幕如下图。
57
第一次删除后的屏幕 显示和缓冲区情况
将光标定位在第一行上,使用删除命令删除当 前行。vi编辑器将被删除的行保存在缓冲区1。
58
第二次删除后的屏幕 显示和缓冲区情况
使用删除命令一次删除两行,被删除的两行被 存到缓冲区1,前面被删除的内容移到缓冲区2。
为提高查看文件效率,vi提供翻页操作符。
65
光标定位键(续)
按键 功 能
Ctrl-d
Ctrl-u Ctrl-f
Ctrl-b
将光标向下移动到文件尾,通常每次 移动12行。 将光标向上移动到文件头,通常每次 移动12行。 将光标向下移动到文件尾,通常每次 移动24行。 将光标向上移动到文件头,通常每次 移动24行。
66
光标定位键(续)
其他操作符
行号n+ G:将光标定位到第n行,例如
输入1000G,将光标移到第1000行上; 输入1G,将光标移到第1行上; 输入G,将光标移到文件尾。
Ctrl+g:告诉用户当前行号,提供类似如下信息
67
“myfirst” line 30 of 90 -30%
定制vi编辑器
y$:复制从当前光标位置开始到当前行尾的文本。
按y$,vi将从光标位置开始到当前行尾的文本复制到临 时缓冲区,光标仍在字母i上。
使用光标移动键,将光标移到最后一行行尾。按p键,vi将被 复制的文本放到光标位置后。
47
使用复制操作符和域控制键
y0:复制从当前光标位置开始到当前行首的文本。
按y0,vi复制从光标位置开始到当前行首的文本,光 标停留在字母e上。
$view myfirst $vi –R myfirst
14
命令选项-c
该选项允许用户将指定的vi命令作为命令 行的一部分。
该选项可用于在编辑之前定位光标,或 在文件中使用搜索模式。
15
命令选项-c
打开文件myfirst并查找most $vi –c/most myfirst
16
编辑多个文件
使用修改操作符和域控制键来修改一个字。 按cw,vi在当前字尾放置标记,并覆盖字母t, 然后转入文本输入模式。光标仍在准备修改的 第一个字母m上。
50
使用修改操作符和域控制键
输入all,将字most改为all。 按Esc键,vi回到命令模式。标记被删除。
51
在vi中使用缓冲区
两种类型的临时缓冲区
8 vi编辑器的高级用法
更多有关vi编辑器的知识 重排文本
vi操作符的域
在vi中使用缓冲区
光标定位键
定制vi编辑器
其他vi命令
1
更多有关vi编辑器的知识
vi与ex
启动vi编辑器 使用vi的启动选项
编辑多个文件
2
vi与ex
vi编辑器是ex系列编辑器的一部分 vi是ex编辑器中的屏幕编辑器 vi和ex之间可切换
44
使用删除操作符和域控制键
db:删除到前一个字的字首。 按db,vi删除字by,光标仍在字母o之前的空格上。
45
使用复制操作符和域控制键
复制操作符可以同删除操作符一样使用 域控制键。
p和P操作符用来将复制的文本放到文件 的其他地方,并使用域控制键来控制复 制文本的哪一部分。
46
使用复制操作符和域控制键
缓冲区1总是保留最近被修改的内容。例如:
当用户发出dd命令时,vi将被删除的行存到缓 冲区1。 当再次使用dd命令删除另一行时,vi将以前的 内容放到下一个缓冲区(这里是缓冲区2), 然后将新内容存到缓冲区1。
54
数字编号缓冲区(续)
使用put操作符,并在它前面加上缓冲区 号,就可以找回数字编号缓冲区的内容。
数字编号缓冲区 字母编号缓冲区(命名缓冲区) 都可以用来保存修改和以后再找回变更。
52
数字编号缓冲区
vi 编辑器使用9个临时缓冲区,编号从1到9。
每次删除或复制的文本都放在这些缓冲区中, 用户指定缓冲区号就可以访问任何一个缓冲区。
每次新删除或复制的文本都要替换缓冲区以前 的内容。
53
数字编号缓冲区(续)
按dw键,vi删除字most和它后面的空格,光标 移到字母o上。
42
使用删除操作符和域控制键
ndw:删除光标位置后的多个字。
按3dw键,vi删除3个字most、of、the及the后 面的空格,光标移到字by后面的空格上。
43
使用删除操作符和域控制键
de:删除到字尾。
按de键,vi删除most,光标移到字母o之前的空格上。
63
字母编号缓冲区:实例
输入”wdd,删除当前行,将它的副本保存到
缓冲区w。
输入“wp,将缓冲区w的内容复制到光标位置。
输入”z7yy,复制7行到缓冲区z。 输入”zp,将缓冲区z的内容复制到光标位置。
64
光标定位键
屏幕一次显示24行文本,如果文本多于 24行,用户需使用光标移动键向上或向 下滚动文件查看。
如果希望保存只读文件,必须用!选项强 制执行写操作。
9
只读选项-R
用只读方式打开文件myfirst $vi –R myfirst
10
只读选项-RBaidu Nhomakorabea
试图保存只读文件,会出现如下信息
11
只读选项-R
可使用!选项强制保存只读文件
12
退出只读文件
使用:q或q!命令
13
查看文件
下面两种方式都可以实现查看文件
25
在vi编辑器中读入另一 个文件:使用r命令
:r命令将指定文件的副本放到缓冲区中光标 之后,指定的文件成本当前文件的一部分。
26
在vi编辑器中写入另一 个文件:使用w命令
vi编辑器允许用户将当前编辑文件的一部分 写入到另一个文件中。要求指定行号范围。
27
重排文本
在vi编辑器中,删除、复制、移动、修改文本 都可以归结为剪切和粘贴操作。
28
vi编辑器的剪切和粘贴键
按键 功能 d 删除指定位置的文本,并保存到临时缓冲区中。 可使用put操作符(p或P)来访问该缓冲区。 y 复制指定位置的文本到临时缓冲区。可使用put操 作符(p或P)来访问该缓冲区。 P 将指定缓冲区的内容放到当前光标位置之上
p
c
将指定缓冲区的内容放到当前光标位置之下
3
启动vi编辑器
带文件名启动
$vi myfirst :w或:wq
4
启动vi编辑器
不带文件名启动 $vi :w myfirst或:wq myfirst
若此时不输入文件名,就会出现警告信息: No current filename
5
启动vi编辑器
在vi编辑器中覆盖已存在文件 vi编辑器通常不允许覆盖已存在文件 :w myfirst 若myfirst已存在,就出现如下警告信息 “myfirst” File exists –use “:w! to overwrite” 若要覆盖已存在文件,就使用如下命令 :w! myfirst
vi编辑器有许多参数,可供用户设置来控制工 作环境。
61
字母编号缓冲区(命名缓冲区)
vi编辑器还使用26个命令缓冲区,这些缓 冲区用小写字母a~z来命名,用户通过指 定缓冲区的名字来引用它们。
与数字编号缓冲区不同的是,每次用户 在文件中删除或复制文本时,vi编辑器不 自动改变这些缓冲区的内容。
62
字母编号缓冲区(续)
用户可以将删除或复制的文本存到指定缓冲 区,然后用put操作符将指定缓冲区的文本复 制到文件的其他地方。 字母编号缓冲区的内容保持不变,直到用户 在删除或复制操作中指定了该缓冲区。 引用命令缓冲区的格式如下: 双引号+缓冲区名+命令
删除文件并使vi进入文本输入模式。这是组合删 29 除和插入命令。
重排文本
移动行:dd,p或P 复制行:yy,p或P
30
移动行:dd,p或P
使用删除和put操作符,可以将文本从文件的 一个位置移到另一个位置。 按dd,vi删除当前行,并将删除的行保存到 临时缓冲区,光标移到下一行行首。 按p键,vi将前面被删除的行放到当前行下。
复制行:yy,p或P
35
复制行:yy,p或P
使用光标移动键,将光标放到最后1行上。 按P键,vi复制临时缓冲区的内容到当前行上。
36
vi操作符的域
文本块:一个字符、一个字、一行、一 句、其他指定的字符集。 许多vi命令只在一个文本块上操作。 组合使用vi命令和域控制键可以更好地控 制编辑任务。
31
移动行:dd,p或P
32
移动行:dd,p或P
使用光标移动键,将光标放到第1行的任 意字符上。
按P键,vi将被删除的行放到当前行上。
33
复制行:yy,p或P
使用复制和put操作符,可以将文本从文件的
一个位置复制到另一个位置。
按yy键,vi将当前行复制到临时缓冲区。
使用光标移动键,将光标放到第1行上。 按p键, vi复制临时缓冲区的内容到当前行下。
用户启动vi时,可以给出多个文件名。 每当结束一个文件的编辑时,就可以编辑 下一个文件而不用重新启动vi。
使用:n(next)命令启动编辑下一个文件。
使用:ar命令查看文件名列表。
17
编辑多个文件
若上一个文件修改后未保存,vi就会显示如下 信息: No write since last change(:next ! overwrite)
The Screen and Buffers After Second Delete
Figure 6-3
59
复制后的屏幕显示和缓冲区情况
用户复制的文本也存在临时缓冲区中。将光标放在第 一行上,输入yy,vi将复制的行放入缓冲区1。
60
put命令后的屏幕 显示和缓冲区情况
输入”2p,vi将缓冲区2的内容复制到光标位置之后。
37
vi操作符的域
域 $ e 或w b 功能 标识域为从光标位置开始到当前行尾 标识域为从光标位置开始到当前字尾 标识域为从光标位置前到当前字首
0(零) 标识域为从光标位置前到当前行首
38
vi操作符的域
使用删除操作符和域控制键 使用复制操作符和域控制键 使用修改操作符和域控制键
39
使用删除操作符和域控制键
如“9p就可以找回缓冲区9的内容,将缓 冲区9的内容复制到光标位置。 指定缓冲区的格式为:
“np或”nP(双引号+n+p或P)
55
n表示缓 冲区号
数字编号缓冲区:示例
使用vi在Chapter6目录下创建一个文件 buffer,内容如下: AAAAAAAAAA 22222222222222 BBBBBBBBBB 33333333333333 CCCCCCCCCC
使用光标移动键,将光标移到第一行行尾。按P键,vi将被复 制的文本从临时缓冲区复制到光标位置之前。
48
使用修改操作符和域控制键
c操作符组合了插入和修改功能,它将vi从命令
模式转换到文本输入模式。
按c键后,可以从光标位置开始输入文本,文 本向右移动,必要时折行。
按Esc键回到命令模式。
49
使用修改操作符和域控制键
21
编辑多个文件
输入:n并按回车键,开始编辑file2文件。
22
编辑多个文件
输入:ar并按回车键,显示文件名。当 前文件是file2,在括号中。
23
编辑多个文件
如果用户输入:n,而命令行上没有要打 开的文件,vi就会显示如下信息。
No more files to edit
24
在vi编辑器中编辑另一个 文件:使用e(edit)命令
d$:删除从光标位置开始到当前行尾的文本。 按d$键,vi删除从光标位置开始到当前行尾的 文本,并将光标移到字母by后面的空格上。
40
使用删除操作符和域控制键
d0:删除从光标位置之前到当前行首的文本。
按d0键,vi删除相应文本,光标停留在字母m上。
41
使用删除操作符和域控制键
dw:删除光标位置后的一个字。
使用n!命令可以忽略这个提示信息。
18
编辑多个文件
创建文件file1、file2、yourfirst
19
编辑多个文件
$vi file1 file2
2 files to edit
“file1” 2 lines,22 characters
20
编辑多个文件
输入:ar并按回车键,显示文件名。当 前文件在括号中。
6
启动vi编辑器
在vi编辑器中实现”“文件另存为”
$vi myfirst :w yourfirst或:wq yourfirst可将myfirst内容 保存到yourfirst ,原文件保持不变。
7
使用vi的启动选项
只读选项-R
命令选项-c
8
只读选项-R
该选项允许逐行查看文件内容,但不能 修改文件。
56
vi编辑器的9个数字编号缓冲区
在没有做任何编辑操作的情况下,用户屏 幕如下图。
57
第一次删除后的屏幕 显示和缓冲区情况
将光标定位在第一行上,使用删除命令删除当 前行。vi编辑器将被删除的行保存在缓冲区1。
58
第二次删除后的屏幕 显示和缓冲区情况
使用删除命令一次删除两行,被删除的两行被 存到缓冲区1,前面被删除的内容移到缓冲区2。
为提高查看文件效率,vi提供翻页操作符。
65
光标定位键(续)
按键 功 能
Ctrl-d
Ctrl-u Ctrl-f
Ctrl-b
将光标向下移动到文件尾,通常每次 移动12行。 将光标向上移动到文件头,通常每次 移动12行。 将光标向下移动到文件尾,通常每次 移动24行。 将光标向上移动到文件头,通常每次 移动24行。
66
光标定位键(续)
其他操作符
行号n+ G:将光标定位到第n行,例如
输入1000G,将光标移到第1000行上; 输入1G,将光标移到第1行上; 输入G,将光标移到文件尾。
Ctrl+g:告诉用户当前行号,提供类似如下信息
67
“myfirst” line 30 of 90 -30%
定制vi编辑器
y$:复制从当前光标位置开始到当前行尾的文本。
按y$,vi将从光标位置开始到当前行尾的文本复制到临 时缓冲区,光标仍在字母i上。
使用光标移动键,将光标移到最后一行行尾。按p键,vi将被 复制的文本放到光标位置后。
47
使用复制操作符和域控制键
y0:复制从当前光标位置开始到当前行首的文本。
按y0,vi复制从光标位置开始到当前行首的文本,光 标停留在字母e上。
$view myfirst $vi –R myfirst
14
命令选项-c
该选项允许用户将指定的vi命令作为命令 行的一部分。
该选项可用于在编辑之前定位光标,或 在文件中使用搜索模式。
15
命令选项-c
打开文件myfirst并查找most $vi –c/most myfirst
16
编辑多个文件
使用修改操作符和域控制键来修改一个字。 按cw,vi在当前字尾放置标记,并覆盖字母t, 然后转入文本输入模式。光标仍在准备修改的 第一个字母m上。
50
使用修改操作符和域控制键
输入all,将字most改为all。 按Esc键,vi回到命令模式。标记被删除。
51
在vi中使用缓冲区
两种类型的临时缓冲区
8 vi编辑器的高级用法
更多有关vi编辑器的知识 重排文本
vi操作符的域
在vi中使用缓冲区
光标定位键
定制vi编辑器
其他vi命令
1
更多有关vi编辑器的知识
vi与ex
启动vi编辑器 使用vi的启动选项
编辑多个文件
2
vi与ex
vi编辑器是ex系列编辑器的一部分 vi是ex编辑器中的屏幕编辑器 vi和ex之间可切换
44
使用删除操作符和域控制键
db:删除到前一个字的字首。 按db,vi删除字by,光标仍在字母o之前的空格上。
45
使用复制操作符和域控制键
复制操作符可以同删除操作符一样使用 域控制键。
p和P操作符用来将复制的文本放到文件 的其他地方,并使用域控制键来控制复 制文本的哪一部分。
46
使用复制操作符和域控制键
缓冲区1总是保留最近被修改的内容。例如:
当用户发出dd命令时,vi将被删除的行存到缓 冲区1。 当再次使用dd命令删除另一行时,vi将以前的 内容放到下一个缓冲区(这里是缓冲区2), 然后将新内容存到缓冲区1。
54
数字编号缓冲区(续)
使用put操作符,并在它前面加上缓冲区 号,就可以找回数字编号缓冲区的内容。
数字编号缓冲区 字母编号缓冲区(命名缓冲区) 都可以用来保存修改和以后再找回变更。
52
数字编号缓冲区
vi 编辑器使用9个临时缓冲区,编号从1到9。
每次删除或复制的文本都放在这些缓冲区中, 用户指定缓冲区号就可以访问任何一个缓冲区。
每次新删除或复制的文本都要替换缓冲区以前 的内容。
53
数字编号缓冲区(续)
按dw键,vi删除字most和它后面的空格,光标 移到字母o上。
42
使用删除操作符和域控制键
ndw:删除光标位置后的多个字。
按3dw键,vi删除3个字most、of、the及the后 面的空格,光标移到字by后面的空格上。
43
使用删除操作符和域控制键
de:删除到字尾。
按de键,vi删除most,光标移到字母o之前的空格上。
63
字母编号缓冲区:实例
输入”wdd,删除当前行,将它的副本保存到
缓冲区w。
输入“wp,将缓冲区w的内容复制到光标位置。
输入”z7yy,复制7行到缓冲区z。 输入”zp,将缓冲区z的内容复制到光标位置。
64
光标定位键
屏幕一次显示24行文本,如果文本多于 24行,用户需使用光标移动键向上或向 下滚动文件查看。
如果希望保存只读文件,必须用!选项强 制执行写操作。
9
只读选项-R
用只读方式打开文件myfirst $vi –R myfirst
10
只读选项-RBaidu Nhomakorabea
试图保存只读文件,会出现如下信息
11
只读选项-R
可使用!选项强制保存只读文件
12
退出只读文件
使用:q或q!命令
13
查看文件
下面两种方式都可以实现查看文件
25
在vi编辑器中读入另一 个文件:使用r命令
:r命令将指定文件的副本放到缓冲区中光标 之后,指定的文件成本当前文件的一部分。
26
在vi编辑器中写入另一 个文件:使用w命令
vi编辑器允许用户将当前编辑文件的一部分 写入到另一个文件中。要求指定行号范围。
27
重排文本
在vi编辑器中,删除、复制、移动、修改文本 都可以归结为剪切和粘贴操作。
28
vi编辑器的剪切和粘贴键
按键 功能 d 删除指定位置的文本,并保存到临时缓冲区中。 可使用put操作符(p或P)来访问该缓冲区。 y 复制指定位置的文本到临时缓冲区。可使用put操 作符(p或P)来访问该缓冲区。 P 将指定缓冲区的内容放到当前光标位置之上
p
c
将指定缓冲区的内容放到当前光标位置之下
3
启动vi编辑器
带文件名启动
$vi myfirst :w或:wq
4
启动vi编辑器
不带文件名启动 $vi :w myfirst或:wq myfirst
若此时不输入文件名,就会出现警告信息: No current filename
5
启动vi编辑器
在vi编辑器中覆盖已存在文件 vi编辑器通常不允许覆盖已存在文件 :w myfirst 若myfirst已存在,就出现如下警告信息 “myfirst” File exists –use “:w! to overwrite” 若要覆盖已存在文件,就使用如下命令 :w! myfirst
vi编辑器有许多参数,可供用户设置来控制工 作环境。
61
字母编号缓冲区(命名缓冲区)
vi编辑器还使用26个命令缓冲区,这些缓 冲区用小写字母a~z来命名,用户通过指 定缓冲区的名字来引用它们。
与数字编号缓冲区不同的是,每次用户 在文件中删除或复制文本时,vi编辑器不 自动改变这些缓冲区的内容。
62
字母编号缓冲区(续)
用户可以将删除或复制的文本存到指定缓冲 区,然后用put操作符将指定缓冲区的文本复 制到文件的其他地方。 字母编号缓冲区的内容保持不变,直到用户 在删除或复制操作中指定了该缓冲区。 引用命令缓冲区的格式如下: 双引号+缓冲区名+命令
删除文件并使vi进入文本输入模式。这是组合删 29 除和插入命令。
重排文本
移动行:dd,p或P 复制行:yy,p或P
30
移动行:dd,p或P
使用删除和put操作符,可以将文本从文件的 一个位置移到另一个位置。 按dd,vi删除当前行,并将删除的行保存到 临时缓冲区,光标移到下一行行首。 按p键,vi将前面被删除的行放到当前行下。