全屏幕编辑程序vi讲解

上传人:我** 文档编号:116964516 上传时间:2019-11-17 格式:PPT 页数:44 大小:339.50KB
返回 下载 相关 举报
全屏幕编辑程序vi讲解_第1页
第1页 / 共44页
全屏幕编辑程序vi讲解_第2页
第2页 / 共44页
全屏幕编辑程序vi讲解_第3页
第3页 / 共44页
全屏幕编辑程序vi讲解_第4页
第4页 / 共44页
全屏幕编辑程序vi讲解_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《全屏幕编辑程序vi讲解》由会员分享,可在线阅读,更多相关《全屏幕编辑程序vi讲解(44页珍藏版)》请在金锄头文库上搜索。

1、第3章 全屏幕编辑程序vi 3.1 vi的启动方法 3.2 vi的选项 3.3 vi的工作方式 3.4 vi的编辑命令 早期的UNIX提供的编辑器是行编辑ed。UNIX 的全屏幕编辑器vi,现在所有的UNIX版本都支持 。目前,行编辑ed还经常用于Shell脚本程序中, 在脚本程序中,根据用户的输入信息修改一个文本 文件的内容。行编辑程序ed的显示是面向行的, 对终端的类型和特性没有任何的特殊要求和限制, ed程序本身也比较简单。vi可以交互式编辑文本 文件,编辑是面向屏幕的,终端的类型设置必须正 确,否则无法正常工作。由于vi在所有UNIX之间 通用,也可以应用于各种各样的终端,占用系统资

2、源很少,所以vi仍然被广泛使用。 用法:vi filename 例如:vi abc.c,启动vi编辑文件abc.c。 vi有搜索命令和卷动功能,可以用来浏览文本文 件,比more,less等更方便,但是应当避免在浏览 时对文件无意中做出错误的修改。可以使用view代 替vi进入编辑程序,就不允许修改文件内容。 3.1 vi的启动方法 vi有40多个选项控制vi的运行。 1用.exrc文件控制 vi一启动后就自动读取用户自己主目录(Home Directory)下的文件.exrc,获取用户自设定的vi选 项,未指定的选项按默认值处理。 如:建立文件.exrc,其中含有如下两行: set numb

3、er set showmode 其中第一条命令使得vi在列出每一行时,在左边 列出行号。第二条命令使得vi在屏幕右下角标志出 当前是否处于输入状态。 3.2 vi的选项 2在vi中使用set命令 例: :set number 在列出每一行时,左边列出行号 :set showmode 在屏幕右下角标志出当前是否处于输入 状态 :set nonumber 在列出每一行时,在左边不列出行号 :set noshowmode 在屏幕右下角不标志出当前是否处于 输入状态 :set all 列出所有开关的当前状态 一般的,设置选项和取消选项的命令格式分别为 (其中option为选项名) :set optio

4、n :set nooption vi的工作方式分命令方式和输入方式。vi启动后 就进入命令方式,参见图3-1。 图3-1 vi的工作方式转换 3.3 vi的工作方式 处于命令方式时,用户键入的内容被当作vi的命 令来解释,一般处于命令方式下按键无回显(以冒 号打头的命令和查找命令除外)。编辑命令i,a等 ,可以从命令方式转到输入方式。 处于输入方式时,用户键入的所有内容全部作为 输入的正文内容,用户可以输入多行,每输入完一 行后按回车键转入下一行,正文输入时有回显。输 入完毕,按键盘左上角的Esc键,返回到命令方式 。 当vi处于命令状态时,用户的按键不回显,被解 释成编辑命令,vi大约有10

5、0多个编辑命令。下面 介绍的vi命令子集,足可以完成一般的编辑任务。 3.4 vi的编辑命令 命令i,在当前光标处插入(insert)正文段,直 至按Esc键。 在命令方式下,按下i键后,进入输入方式。从此 以后,输入的文本在屏幕上回显,输入完一整行后 ,按下Enter键,继续输入下一行。输入结束后, 按Esc键,退出输入方式,回到命令方式。回到命 令方式之后,按键信息不再回显,所有的按键被解 释为命令。许多传统的UNIX中,vi必须首先按下 Esc键退出输入模式之后再移动光标到其他行,修 改后,移动光标回来,再按下i命令(或者a,o,O )重新进入输入方式。在当前输入行的错误修正, 使用Ba

6、ckspace键,不需要退出输入方式。 3.4.1 正文插入命令 除了i命令外,在当前光标后追加(append)正 文段的命令a,也可以进入输入模式,直至按Esc键 。 命令o,在当前行之下插入新行(open),进入 输入模式,直至按Esc键。 大写字母O命令,在当前行之上插入新行(open ),进入输入模式,直至按Esc键。 1单字符移动 h 光标左移一列 j 光标下移一行 k 光标上移一行 l 光标右移一列 在vi中有许多命令可以在命令前加上一个整数, 标志这个命令连续执行多少遍,例: 5h 光标左移5列 6j 光标下移6行 23k 光标上移23行 10l 光标右移10列 3.4.2 光标

7、移动命令 有的终端可以直接使用键盘上的箭头按键代替这四 个字母,更便于用户使用。vi被设计成对终端特性的依 赖性最小,所以,不依赖于终端的功能键,仅使用键 盘的字母、数字和符号键vi就能完成编辑工作。 2翻页 Ctrl+B键:向后翻页(Backward) Ctrl+F键:向前翻页(Forward) Ctrl+U键:向上翻半页(Up) Ctrl+D键:向下翻半页(Down) 在vi中,把向文件尾方向定义为“向前”,向文 件头方向定义为“向后”,这与许多人的习惯不同 。在PC上的UNIX允许用PgDn键代替Ctrl+F键, 用PgUp键代替Ctrl+B。 也可以使用下面的键: 6Ctrl+F键:向

8、前翻6页 15Ctrl+B键:向后翻15页 3将光标移至当前行首 4将光标移至当前行尾$ 5移到右一个单词 w W,移到左一个单词 b B w,b与W,B的区别是它们对“单词”的定义不 同。小写命令的命令w和b,以非字母、数字、下 划线之外的所有字符作为“单词”分界符。大写命 令的命令W和B,仅以空白符(空格或者制表符) 作为“单词”分界符。同前述其他命令类似,也可 以使用类似6w,3W,5b,10B命令。 6移到指定的行 使用这种方法可以立即将光标定位到需要修改的 行。例: :476将光标定位于第476行 :1将光标定位于第1行(文件首) :$将光标定位于文件尾 :$-10将光标定位于文件倒

9、数第10行 在描述行号时,可以使用句点(.)代表当前行号 ,使用$代表最后一行的行号,而且可以使用整数 加减法,如最后一例。 7括号配对命令 % 先把光标移到一个大括号(或括号,或方括号) 上,按%键,则光标自动定位到与它配对的那一个 括号,对编写和检查C语言的源程序非常有用。 vi允许设置以单个英文字母命名的最多26个标记 (mark),许多编辑器把这种功能叫“书签( bookmark)”。vi的书签记忆了一个行号。 设置书签的命令是m。例如:顺序按下两个键m 和a,尽管终端上没什么特别的显示信息,但是, vi已经将当前行号记为名字为a的书签。设置的所 有书签,在vi退出后,不再保存。 vi

10、许多编辑命令可以使用命名的书签,将光标移 动到指定书签处的命令是(单引号)。 例: a 连续按下单引号和字母a,光标会移动到 书签a处 e光标移动到书签e处 3.4.3 设置书签 1删除当前字符的命令:x 类似的,命令5x删除从当前光标开始的5个字符 。 2删除当前行的命令:dd 类似的,命令3dd删除从当前行开始的3行。 3与光标移动命令相关的删除命令 de 从当前光标处删除到书签e处 d$ 从当前光标处删除到行尾 d 从当前光标处删除到行首 dw 删除一个单词 d% 将光标移动到一个括号字符上,删除和它 配对的括号括起的段落 3.4.4 删除 1替换光标处字符的命令r 例:ra命令将当前光

11、标处字符替换为a。 如果希望将当前光标处开始的三个字符依次替换 为abc,则需要按命令rarbrc。 2替换多个字符的命令R 例:命令Rabcdef,然后按Esc键。 该命令把从当前光标开始的字符依次替换为 abcdef,用Esc键来结束多字符替换命令。这类似 于以“覆盖”(overwrite)方式进入编辑状态。 3.4.5 字符替换 1命令u 取消上一次的编辑操作。例如:误删除了一段正 文,用u命令可以恢复到删除前的状态(undo)。 vi的取消操作,只能回退一次。许多新版本的vi 对这个问题作了改进。 2命令. 重复上一次的编辑操作。按句点键,可以重复上 一次的编辑操作。例如:按3dd命令

12、删除了3行, 然后按句点键就再删除3行,如果接着连续按句点 (.)键,则每按一次删除3行。 3.4.6 取消和重复 (1)存盘退出ZZ,存盘退出:wq (2)存盘不退出:w (3)不存盘退出:q! (4)读入一个文件插入到当前行之下:r a.c (5)写文件 把第50行至文件尾的内容写到文件junk中 :50,$w junk 如果文件junk事先已经存在,使用下述命令强制 把它覆盖掉 :50,$w! junk 3.4.7 文件命令 如果编辑了文件之后,无法存盘(例如:文件没 有写权限),那么可以用 :w file1 将当前编辑好的文件内容存到另一个文件中。 1删除命令:d 用法为::l1,l2

13、d,删除第l1l2行。例如: :10,50d删除第1050行 :1,.d删除文件首至当前行的部分 2复制命令:co 用法为::l1,l2col3,将第l1l2行复制到第l3行之 下。例如: :5,10co56 复制第510行到第56行之下 3.4.8 段落的删除、复制和移动 3移动命令:m 用法为::l1,l2ml3,将第l1l2行移动到第l3行之 下。例如: :8,34m78 移动第834行到第78行之下 行号描述时除了可以使用句点代表当前行,$代 表最后一行,还可以使用“书签”,例如:下面的 命令中e代表书签e的行号。 :e,.d vi有一个通用的缓冲区和用单个的英文字母命名 的26个有名

14、缓冲区,用于保留一些文本。前面介绍 的删除命令,vi会在删除了这些信息之后,自动把 这些信息保留在通用缓冲区中。下面的命令都会执 行两个操作:删除信息和将删除的信息放置到通用 缓冲区中。 dd删除当前行 3dd删除当前行开始的3行 de删除从当前光标处到书签e处(书签e需要 事先用命令me设置好) d$删除从当前光标处到行尾 3.4.9 剪贴板 d删除从当前光标处到行首 dw删除一个单词 d%首先将光标定位到一个括号(或方括号 、大括号)字符上,删除从此开始到和它配对的括 号处 :1,.d删除文件首到当前行的段落 将缓冲区中保留的信息粘贴到光标处,使用p命 令(put或paste)。 除了上述

15、的d命令之外,还有“抽取(yank)” 命令y,它仅仅把指定的信息复制到通用缓冲区, 但不删除它们。用法和d命令类似。 yy当前行 3yy当前行开始的3行 ye从当前光标处到书签e处(书签e需要事先 用命令me设置好) y$从当前光标处到行尾 y从当前光标处到行首 yw一个单词 y%首先将光标定位到一个括号字符上,从 此开始到和它配对的括号处 :1,.y文件首到当前行的段落 在信息保留到缓冲区之后,就可以使用p命令, 将它们粘贴到文件合适的位置。 vi除了使用这个默认的缓冲区之外,还有26个用 单个英文字母命名的有名字的缓冲区。与缓冲区有 关的3个命令是d,y,p,在使用有名字缓冲区时 ,在这

16、些命令前加两个字符的前缀,一个字符是双 引号,一个字符是英文字母代表的缓冲区名字。例 如: “a3dd 删除当前行开始的3行,并把信息保留到 a缓冲区中 “bye复制当前光标到书签e处内容到b缓冲区 中 “ky% 光标定位在一个括号字符上,复制从此 开始到和它配对的括号处的段落到缓冲区k中 “kp粘贴出缓冲区k中的内容 1两行合并J(大写字母,Join) 把当前行下面的行合并到当前行。 2刷新屏幕显示Ctrl+L键 在阅读完 “突然”出现的信息后,按Ctrl+L键 ,恢复vi原先的屏幕显示。在more命令中也介绍过 类似的功能。 3状态显示Ctrl+G键 在屏幕最下面一行列出正在编辑的文件的名字、 总行数、当前行号、文件是否被修改过等信息。 3.4.10 其他命令 在vi的模式查找命令中,使用“正则表达式”来描 述一个字符串模式。命令格式为: /模式 例:/0-90-9* 从文件当前位置开始向下查找能与正则表达式0- 90-9*匹配的字符串,找到后光标将定位

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号