版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章全屏幕文本编辑器vi内容提要:vi的三种模式进入vi的多种方法及打开多个文件的方法熟悉vi中保存和退出的命令熟悉光标移动命令,掌握光标移动与文本修改命令的配合多种修改文件的命令模式的概念,查找和替换命令复制文件内容的方法5.1vi简介vi是visualinterface的简称,是交互式的全屏幕编辑程序.5.1.1vi的特点文本编辑器(没有排版功能,处理纯文本字符)全屏幕编辑(从行编辑发展过来)命令模式,不提供菜单,与dos提供的edit有很大的差异.用户可以根据自己的需要和爱好定制vi2
5.1.2vi的工作模式图
5.1.2vi的工作模式在vi中工作一定要注意在什么模式中工作,否则会造成混乱三种模式是:命令模式、输入模式、末行模式命令模式:用户一进入vi就进入了命令模式,在该模式中任何键入的字符都被看成vi的命令,键入后立即执行。输入模式:当用户需要输入文本时,使用某个命令,进入输入模式,才可开始输入文本。末行模式:也称ex模式,在命令模式中键入冒号(:),就进入了末行模式,在末行模式中输入exล瘄命令,例如w(写)和回车,就可将编辑的内容存入文件。5.1.2vi的工作模式(续)三种工作模式之间转换(1)在操作系统提示符下键入vi,就进入了命令模式(2)由命令模式进入输入模式,键入编辑命令,如插入命令i、添加命令a、建立新行命令o、取代命令r、替换命令s等等。(3)由命令模式进入末行模式,只需键入冒号(:),每次只执行一条,执行完毕立即回到命令模式(4)不论在什么模式,只要键入【ESC】键,就可回到命令模式。(5)输入模式和末行模式之间不能直接切换,必须通过命令模式。(6)在命令模式,用二个ZZ(大写),可以退出vi;在末行模式用q或q!,还可以用wq。5.2vi的进入与退出5.2.1vi的进入(二种方法)vifilename这是编辑一个新文件或编辑一个已经存在的文件的方法如果是新文件,系统会为你创建一个文件名是filename的文件如果你需要对一个存在的文件进行修改,系统会把文件的内容读入vi使用的缓冲区,供你进行编辑,完成编辑后,用相关命令写入原文件或写入一个另一个新的文件.vi这是编辑一个新的文件的方法在编辑完成后必须用相关命令写入一个新的文件,否则一切编辑动作都无效.5.2.1vi的进入(续)进入vi后光标停留在文件的第一行行首,如希望停留在其他行,可用下面的命令:vi+nfillename(进入vi后当前光标位置为第n行)vi+filename(进入vi后当前光标位置为文件尾)vi+/stringfilename(进入vi后当前光标位置为字符串srting所在行的行首。)5.2.2输入一段文本进入vi后,键入i(或a)命令,就可输入文本了,不仅在当前光标位置可输入,也可用带箭头的方向键移动光标后再输入。如果输入有错误,按【Delete】
键删除前一字符。(光标移动过则【Delete
】不起作用。)文本输入完毕,用【ESC】结束本次输入模式,回退到命令模式.5.2.3退出退出vi有三种情形:(1)以原有的文件名保存已经作过的编辑,退出vi进入末行模式下退出,用以下命令::wq(等价于:w及:q)或:x在命令模式下退出,用二个大写的ZZ即可(2)以新的文件名保存,必须进入末行模式,用以下命令::wnewfilename(保存到新文件):q(退出)(3)不保存所作过的一切编辑动作,在末行模式下退出vi::q!在末行模式可以不离开vi执行一条linux命令::!cmd5.2.4vi的帮助在操作系统提示符下使用man命令:$manvi在vi的末行模式下使用help命令::help(用:q!退出):helpvcmd(用:q!退出)5.3vi的编辑操作和命令移动光标文本插入操作修改文本5.3.1行号vi的工作是在文本缓冲区中做的,为了帮助用户观看,可为文本的行设置一个行号,放在文本的左侧(行首前)可以用末行命令set来设置和取消::setnumber(:setnu):setnonumber(:setnonu)可以用:nu来获得当前光标的行号和当前行的内容可以用【
crtl+g】来获得当前行在文件中的相对位置,在系统提示行上显示在整个文件中的百分数5.3.2移动光标光标可移动的单位:(1)字符:汉字由二个ASCII字符宽度,移动的单位是一个汉字,英文或数字等是一个ASCII字符宽度(2)行:文本的一行,可用行号定位(3)屏幕:分成半个屏幕高或整个屏幕高(页)(4)行首和行尾:文本行的行尾和行首(5)字:广义字和狭义字广义字:由空格作为间隔符狭义字:英文单词、标点符号及一些特殊字符均作为一个字(6)句:以逗号、句号、问号、感叹号结尾且后面有二个以上(含二个)空格或一个换行符的字符序列。(7)段:以一个空白行开始和结束的字符序列5.3.2移动光标(续)按字符移动的键:(1)四个带箭头的方向键:各自按方向移动一个字符(2)j、k、h、l:各自按上、下、左、右移动一个字符(3)【spacebar】:光标右移一个字符【backspace】:光标左移一个字符【ctrl+n】:光标下移一个字符【ctrl+p】:光标上移一个字符按行来移动光标:【Home】:光标移动到本行行首?(0行首,^第一个非空白字符)$或【End】(?):光标移动到本行行尾-:光标移动到上一行的行首5.3.2移动光标(续)跳到指定的行[行号]G缺省为到文件的最后行在屏幕上移动H:光标移动到屏幕首行行首M:光标移动到屏幕显示文件的中间行行首L:光标移动到屏幕最底行行首按字移动光标(小写字母对狭义的字,大写字母对广义的字)w和W
将光标移动到下一个字的字首e和E将光标移动到下一个字的字尾b和B将光标移动到前一个字的字首5.3.2移动光标(续)按句移动(:将光标移到上一个句子的开头):将光标移到下一个句子的开头按段移动:{:将光标移到上一个段的开头}:将光标移到下一个段的开头屏幕滚动【ctrl+u】:将屏幕向文件头方向翻滚半屏【ctrl+d】:将屏幕向文件尾方向翻滚半屏【ctrl+f】:将屏幕向文件尾方向翻滚一整屏【ctrl+b】:将屏幕向文件头方向翻滚一整屏5.3.3文本插入操作输入任意的文本,都要将vi的工作模式从命令模式切换到文本输入模式.切换的命令有:i
:在当前光标之前插入文本I:在当前行的行首插入文本a:在当前光标之后添加文本A:在当前行的行尾添加文本o:在当前行的下面开一个新行O:在当前行的上面开一个新行5.3.4修改文本文本的删除x:删除光标处的字符nx:删除光标位置起的右n个字符X:删除光标前的字符nX:删除光标位置前的左n个字符dd:删除当前行ndd:删除当前行起的n行D或
d$:删除光标起到行尾的内容d0:删除光标前一个字符到行首的内容dw:删除一个单词ndw:删除n个单词5.3.4修改文本(续)恢复删除u、U命令和重复(.)命令u:取消上一次的编辑动作(可多次)U:取消在本行所有的编辑动作重复命令(.):再一次执行刚执行过的命令九个寄存器的使用vi提供九个寄存器,以数字1,2,…,9命名,每次用dd命令删除一行就送往寄存器1,而原寄存器1的内容则送往寄存器2,寄存器2的内容送往寄存器3,…。超过9次,则最早被删除的内容就不再保留。如果要恢复第n次用d命令删除的内容,则可用"
np
命令(n<10).5.3.4修改文本(续)修改命令c注意键入命令后就进入了输入模式,所以输入完毕必须用【ESC】回到命令模式.c
object:改变光标位置起到object位置的内容.C或c$:改变光标位置起到行尾的内容.nC:改变光标位置起的n行内容cc:改变当前行的内容.ncc:改变当前行起n行的内容5.3.4修改文本(续)文本替换文本替换是用新的文本替换原有的文本命令:r和Rrx:
用x字符替换光标位置的字符nrx:用x字符替换光标位置起的n个字符R:用跟随其后的字符一对一地替换文本,结束后应用【ESC】键回到命令模式nR:表示R后面输入的内容重复n次5.3.4修改文本(续)s和S命令s:用跟随在其后的字符串替换光标位置的字符,结束后应用【ESC】键回到命令模式ns:用跟随在其后的字符串替换光标位置起的n个字符,结束后应用【ESC】键回到命令模式S:用跟随在其后的字符串替换当前行,结束后应用【ESC】键回到命令模式nS:用跟随在其后的字符串替换当前行起的n行,结束后应用【ESC】键回到命令模式字替换cw:用跟随在其后的字符串替换光标位置的字(狭义),结束后应用【ESC】键回到命令模式5.3.4修改文本(续)行的合并J:把光标所在行与下一行合并成一行nJ:把光标所在行与下面的n-1行合并成一行5.3.4修改文本(续)文本行的移动“>”:将限定的文本右移8个空格,限定的文本由当前行与在>后的光标移动命令所限定.例如:>L表示将当前行到屏幕末行为至的文本都右移8个空格。“<”:将限定的文本左移8个空格,限定的文本由当前行与在<后的光标移动命令所限定.例如:<H表示将当前行到屏幕首行为至的文本都左移移8个空格。“>>”:将当前行右移8个空格.“<<”:将当前行左移8个空格.“n>>”:将当前行和其后的n-1行右移8个空格.“n<<”:将当前行和其后的n-1行左移8个空格.5.3.4修改文本(续)文本行的异行移动:其实质是先把要移动的n行先删除,然后粘贴到目的行,步骤如下:(1)将光标移到要移动的n行首行(2)ndd(3)将光标移到目的行处(4)键入1p,将被删除的n行从1号寄存器中取出.使用末行命令:n1,n2mk(将从n1行到n2行的文本移动到k行处,其中m是移动命令)5.3.4修改文本(续)屏幕调零命令[行号]z[行数]<回车>:将由行号(缺省为当前行)指定的行显示在屏幕的首行,行数指定了显示的行数[行号]z[行数].:将由行号(缺省为当前行)指定的行显示在屏幕的中间,行数指定了显示的行数[行号]z[行数]-:将由行号(缺省为当前行)指定的行显示在屏幕的最末行,行数指定了显示的行数5.4字符串的查找字符串查找重复查找:n和N命令字符查找命令光标靠近字符命令全局替换命令模式表达式5.4.1字符串查找向前(文件的尾部)查找命令方式/模式【Enter】:光标将停留在查找到的第一个和模式匹配的字符上/模式/-:光标将停留在查找到的第一个和模式匹配的字符所在行的上一行上/模式/+:光标将停留在查找到的第一个和模式匹配的字符所在行的下一行上/模式/-n:光标将停留在查找到的第一个和模式匹配的字符所在行的上n行上/模式/+n:光标将停留在查找到的第一个和模式匹配的字符所在行的下n行上5.4.1字符串查找(续)向后(文件的头部)查找命令方式?模式【Enter】:光标将停留在查找到的第一个和模式匹配的字符上?模式?-:光标将停留在查找到的第一个和模式匹配的字符所在行的上一行上?模式?+:光标将停留在查找到的第一个和模式匹配的字符所在行的下一行上?模式?-n:光标将停留在查找到的第一个和模式匹配的字符所在行的上n行上?模式?+n:光标将停留在查找到的第一个和模式匹配的字符所在行的下n行上5.4.2检索下一个字符串n命令:重复上一个查找,查找方向与上一次相同.N命令:重复上一个查找,查找方向与上一次相反.5.4.3字符检索使用f命令可在当前行上向前查找给定的字符:f字符5.4.4光标靠近字符t:从光标当前行向前查找指定的字符,光标停留在指定字符之前的字符.T:从光标当前行向后查找指定的字符,光标停留在指定字符之后的字符.5.4.5全局替换命令在末行模式下的组合命令,可以对文件进行复杂的修改命令格式如下::g/模式/命令表命令表中可以有以下命令:p:显示找到字符串的行的内容5.4.5全局替换命令(续)s:替换字符串命令,其具体格式为:s/s1/s2/x
s是替换命令,s1是被替换的字符串,s2是替换串,当s1缺省时表示被替换的对象时前面找到的RE,s2不可使用规则表达式,s2缺省时表示空串,(其中的/不可省略)x
是选项,可取值c:由用户确认是否要替换g:对一行中所有匹配模式的字符串执行命令(否则仅第一个)p:显示出匹配字符串修改后的行的内容5.4.5全局替换命令(续)下面是一些常用的命令:(1)g/s1/p(2)g/s1/s//s2/(3)g/s1/s//s2/g(4)g/s1/s//s2/gp(5)g/s0/s/s1/s2/g(6)g!/模式/命令表(7)g/^/s///g(8)s/模式/替换文本/选项全局命令例
1-rw-r--r--1zhaozhao10079Jun2109:47b012-rw-r-----1zhaozhao0Sep1111:38c13-rw-rw-rw-1zhaozhao0Sep1111:44c24drwx------2zhaozhao4096Oct816:05d3/5drwxrwxr-x2zhaozhao4096Oct1515:01d5/6-rw-rw-r--1zhaozhao39Oct814:18data17-rw-rw-r--2zhaozhao24Oct1314:44f18drwxrwxr-x3zhaozhao4096Oct1310:28mydoc/9-rw-rw-r--1zhaozhao16Oct809:54odtest10-rwx------1zhaozhao238Sep2013:33select_li2*11-rw-r--r--1zhaozhao63Oct1116:05student112-rw-r--r--3zhaozhao38May2116:24t1115.4.6模式表达式正则表达式和模式(pattern)正则表达式是由一些特殊字符和普通字符构成的字符串,用来表示某类特征的文本.模式则是由正则表达式和一些操作符进一步构成的用来表示含有某种特征的文本.在模式可使用的特殊字符及其含义:(1)点号“.”:表示任意的单个字符(2)星号“*”:表示0个或多个在它前面的字符(3)方括号“[]”:表示匹配在其中的字符集中的某个字符,在其中的字符集如是有序的,可以用“-”表示.5.4.6模式表达式(续)(4)“^”符号:在[]中,如位置紧跟在[之后,则表示在[]种的字符集的“非”;如在其他位置,仅表示它自己.在[]之外的表达式中,则表示匹配“行首”
(5)“$”符号:表示匹配“行尾”模式表达式例例1:ab.c代表第一个字符为a第二个字符为b第三个字符为任意字符,第四个字符为c的四个字符构成的字符串例2:ab*c可以代表ac、abc、abbc、abbbc等等例3:[abc]代表字母a或b或c例4:[^a-z]代表除小写字母以外的字符例5:^[a-z]代表行首是小写字母例6:abc$代表以abc结尾的例7:.*代表任意的任意长的字符串5.5编辑多个文件在vi中可以同时编辑多个文件,多文件的编辑可以利用公共的缓冲区来交换文件的内容,还可共享同一个vi的环境设置。5.5.1打开多个文件方法一:vi文件列表(列表中可使用通配符)方法二:在末行模式下使用e命令,即:e文件名5.5.2在多个文件之间切换使用第一种方法打开多文件时,可使用下面的命令实现文件间的切换::n(打开下一个文件):n!(抛弃对文件的编辑,打开下一个文件):args(列出被编辑的文件名表):efilename(编辑由filename指定的文件):rew(重新从列表的第一个文件进行编辑):rew!(放弃所做的编辑,重新从列表的第一个文件进行编辑)5.6文件内容的复制删除寄存器:以数字1-9命名删除时,最近被删除的内容放在1号寄存器,而上一次被删除的内容则被放到2号寄存器,2号寄存器被放到3号寄存器,等等。例:ndd(删除当前行起的n行,并放入在1号寄存器)字母缓冲区:以字母a-z命名复制时把被复制内容放到某缓冲区(?为字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年湘美版一年级美术上册(全册)各单元知识点梳理归纳
- 普工岗位考试题库及答案
- 潞城集团考试题库及答案
- 理疗科医生考试题及答案
- 光伏工人安全培训内容课件
- 侨务培训课件
- 企鹅介绍英语
- 企划培训课件
- 2024-2025学年安徽省淮北市濉溪县统编版六年级上册期末考试语文试卷(解析版)
- 翻译真题及答案
- 兔年抽红包课件
- DB31∕T 634-2020 电动乘用车运行安全和维护保障技术规范
- 纪念长津湖战役胜利75周年课件
- 医师证租借协议书
- 分割林地协议书范本
- 医学类药学专业毕业论文
- 中国与东盟贸易合作深化路径与实践
- 烟酒店委托合同范本
- 2025-2026学年上海市浦东新区九年级(上)期中语文试卷
- 商场招商人员述职报告
- 180th燃煤锅炉整体设计
评论
0/150
提交评论