大学课件Linux unix第3章 vi_第1页
大学课件Linux unix第3章 vi_第2页
大学课件Linux unix第3章 vi_第3页
大学课件Linux unix第3章 vi_第4页
大学课件Linux unix第3章 vi_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北农业大学信息科学与技术学院河北农业大学信息科学与技术学院2022-5-241第3章 文 本 编 辑 2022-5-242主要内容l进入和退出vi的方法lvi编辑器的工作方式lvi文本插入和修改命令的规则、应用l移动光标的命令l屏幕命令、字符串检索等命令的使用lex命令的使用2022-5-243 vi的名字取自于visual,意为“直观”,它是一个全屏幕文本编辑程序。在Linux系统中vi是最常用的编辑程序,它的文本编辑功能十分强大,但使用起来比较复杂。初学者可能感到困难,经过一段时间的学习和使用后,你就会体会到使用vi非常方便。Linux系统中的vi其实是vim。vi与vim的用法很像,因

2、为vim是vi的增强版,所以vi的功能vim都有,而且vim新增了许多vi没有的功能,它比vi容易使用。2022-5-244 当我们输入命令当我们输入命令vi,进入进入 vi编辑器时,就处于编辑器时,就处于vi的命令方式的命令方式 3.1 vi的工作方式3.1.1 命令方式2022-5-2453.1.2 输入方式l通过输入通过输入vivi的插入命令的插入命令( i )( i )、附加命令、附加命令( a )( a )、打开命令、打开命令(o )(o )、替换命令、替换命令( s )( s )、修改命令、修改命令( c )( c )或取代命令或取代命令( r )( r )可以从命令方式进入到输入

3、方式可以从命令方式进入到输入方式l由输入方式回到命令方式的办法是按下由输入方式回到命令方式的办法是按下键键(通常在键盘的左上角)2022-5-2463.1.3 ex转义方式vivi和和exex编辑器功能是相同的,二者主要区别是用户编辑器功能是相同的,二者主要区别是用户界面。界面。l在在vi vi 中,命令通常是单个字母,例如中,命令通常是单个字母,例如a , x , Ra , x , R等。等。l在在exex中,命令是以中,命令是以键结束的正文行键结束的正文行l为了使用为了使用exex转义方式,可输入一个冒号(转义方式,可输入一个冒号(: :) 例如, : 1 , s / I / i / g

4、则从文件第一行至文件末尾()将大写I全部替换成小写 i2022-5-247 3.2 进入和退出vi 3.2.1 进入vil在系统提示符($ )下输入命令vi和想要编辑(建立)的文件名,便可进入vi。l例如:vi example.cvi example.c 2022-5-2482022-5-2492022-5-2410命 令说 明vi filename打开或新建文件,并将光标置于第一行首vi +n filename打开文件,并将光标置于第n行首vi + filename打开文件,并将光标置于最后一行首vi +/pattern filename打开文件,并将光标置于第一个与pattern匹配的串处

5、vi -r filename在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename1.filenamen打开多个文件,依次进行编辑进入进入vivi命令命令2022-5-2411显示显示vi中的行号中的行号lvi中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,人工确定行号非常不方便。为此vi提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。在末行方式下输入命令即可显示行号。l:se nu2022-5-24123.2.2 退出vil:wq:wq 把编辑缓冲区的内容写到你编辑的文件中,退出编把编辑缓冲区的内容写到你编辑的文件中,退出编

6、 辑器,回到辑器,回到 shellshell下。下。 (其操作过程是,先键入冒号(其操作过程是,先键入冒号“:”,再键入命令,再键入命令wqwq。以下。以下命令操作相同。)命令操作相同。)l:ZZ:ZZ 仅当作过修改时才将缓冲区内容写到文件上。仅当作过修改时才将缓冲区内容写到文件上。l:x :x 与与 :ZZ:ZZ相同。相同。l:q! :q! 强行退出强行退出vivi。感叹号(。感叹号(! )! )告诉告诉vivi,无条件退出,无条件退出,丢弃缓冲区内容丢弃缓冲区内容2022-5-2413 3.3 文本输入3.1 插入命令l在i命令之后输入的内容都插在光标位置之前,光标后的文本相应向右移动。如

7、按下Enter键,就插入新的一行或者换行。l输入I命令后在当前行(即光标所在行)的行首插入新增文本,行首是该行的第一个非空白字符。当输入I命令时,光标就移到行首。 2022-5-24143.3.2 附加命令la a 在光标之后插入,光标可在一行的任在光标之后插入,光标可在一行的任何位置。何位置。lA A 在光标所在行的行尾添加文本。在光标所在行的行尾添加文本。2022-5-24153.3.3 打开命令lo o 在光标所在行的下面插入一行。在光标所在行的下面插入一行。lO O 在光标所在行的上面插入一行。在光标所在行的上面插入一行。2022-5-24163.3.4 输入方式下光标移动l四个表示方

8、向的箭头键四个表示方向的箭头键: : lBksp (退格键)(退格键)lU U 将光标回退到刚插入字符串的第一个字符,并将光标回退到刚插入字符串的第一个字符,并重新开始插入。重新开始插入。lW W 将光标移到最后插入单词的首字符。将光标移到最后插入单词的首字符。lT T 在插入正文时,如果光标在当前行的开头,并在插入正文时,如果光标在当前行的开头,并且设置了自动缩进选项,那么这个命令就插入缩进所对应且设置了自动缩进选项,那么这个命令就插入缩进所对应的空格。如果光标在新插入词的中间,设从该词开头至光的空格。如果光标在新插入词的中间,设从该词开头至光标位的位移为标位的位移为k k,缩进空格为,缩进

9、空格为n n,那么这个命令就在光标前,那么这个命令就在光标前插入插入( n-k( n-k)个空格;如果)个空格;如果k k大于大于n n,则,则n n 扩大一倍。扩大一倍。2022-5-2417 3.4 移动光标2022-5-2418l向右(向前)移动一个字符的命令(键):向右(向前)移动一个字符的命令(键): l l 右向键右向键 一次向右移动一次向右移动n n个字符:个字符:6l, 5, 86l, 5, 8l向左(向后)移一个字符的命令(键):向左(向后)移一个字符的命令(键): h Bksph 左向键左向键 一次向左移动一次向左移动n n个字符:个字符:h hl移到下一行的命令(键):移

10、到下一行的命令(键): EnterEnter j N j N 下向键下向键 一次向下移动一次向下移动n n行:行:+ , 3, 7j+ , 3, 7jl移到上一行的命令(键):移到上一行的命令(键): k P k P 上向键上向键 一次向上移动一次向上移动n n行:,行:,k k2022-5-2419l移至行首的命令(键)移至行首的命令(键): : 将光标移到当前行的第一个非空白符(非制表符或非空格符) 0 0 总是将光标移到当前行的第一个字符,不管它是否为空白符l移至行尾移至行尾的命令(键):命令(键): l移至指定行的命令(键)移至指定行的命令(键): : 行号行号G Gl移至指定列的命令

11、(键):移至指定列的命令(键): 列号列号| | l按词前移的命令(键):按词前移的命令(键): w w 词被定义为以标点符号或空白符(制表符、换行符或空格)词被定义为以标点符号或空白符(制表符、换行符或空格)分开的字母数字串分开的字母数字串 W W 词被定义为非空白字符串词被定义为非空白字符串l按词后移的命令(键):按词后移的命令(键): b b 词被定义为以标点符号或空白符(制表符、换行符或空格)词被定义为以标点符号或空白符(制表符、换行符或空格)分开的字母数字串分开的字母数字串 B B 词被定义为非空白字符串词被定义为非空白字符串2022-5-2420l移至词尾的命令(键):移至词尾的命

12、令(键): e Ee E 对搜索词的定义分别与对搜索词的定义分别与w w和和W W相同。如光标已在一个词中,相同。如光标已在一个词中,它就移至该词末尾它就移至该词末尾 l按句移动的命令(键):按句移动的命令(键): ( ) 命令( 和 )分别将光标移至上一个和下一个句子的开头。句子被定义为以句点()、问号(?)或感叹号(!)结尾、后随二个空格或一个换行的字符序列。句子在第一个非空白字符处开始。 2022-5-2421l在屏幕上移动的命令(键):在屏幕上移动的命令(键): 位移位移H H 将光标移至屏幕的左上角。将光标移至屏幕的左上角。 位移位移M M 将光标移至屏幕中间行的开头。将光标移至屏幕

13、中间行的开头。 位移位移L L 当显示内容超过一屏时,它将光标移至屏当显示内容超过一屏时,它将光标移至屏幕上的最底行;当显示内容不足一屏时,它使光标停在最幕上的最底行;当显示内容不足一屏时,它使光标停在最后一行上。后一行上。2022-5-2422屏幕命令(屏幕命令(Screen)l屏幕命令是以屏幕为单位移动光标的,常用于文件的滚屏和分页。需要注意的是,屏幕命令不是光标移动命令,不能作为文本限定符用于删除命令中。在命令模式下和文本输入模式下均可以使用屏幕滚动命令。2022-5-24231滚屏命令滚屏命令n(1)Ctrl+U组合键:n(2)Ctrl+D组合键:2022-5-24242分页命令分页命

14、令l(1)Ctrl+F组合键l(2)Ctrl+B组合键2022-5-2425 3.5 文本修改1 1文本删除文本删除l删除字符的命令(键):删除字符的命令(键): x x 删除光标所在的字符删除光标所在的字符 X X 删除光标前面的那个字符删除光标前面的那个字符l删除文本对象的命令(键):删除文本对象的命令(键): dddd 删除光标所在的整行删除光标所在的整行 D D 从光标位置开始删除到行尾从光标位置开始删除到行尾 dd 从光标位置开始删到由光标从光标位置开始删到由光标移动限定的文本对象的末尾移动限定的文本对象的末尾2022-5-24261删除单个字符删除单个字符l(1)xl(2)X202

15、2-5-24272删除多个字符删除多个字符l(1)ddl(2)D或d$l(3)d0l(4)dw2022-5-24282.2.复原命令复原命令 u u 如果插入后用如果插入后用u u命令,就删除刚插入的正文;如果删除后用它,就命令,就删除刚插入的正文;如果删除后用它,就相当于又插入刚删除的正文。相当于又插入刚删除的正文。 U U 把当前行恢复成它被编辑之前的状态,不管你把光标移到该行后把当前行恢复成它被编辑之前的状态,不管你把光标移到该行后对它编辑了多少次。对它编辑了多少次。3.3.重复命令重复命令 . . 重复实现刚才的插入命令或删除命令重复实现刚才的插入命令或删除命令2022-5-24294

16、.4.修改命令修改命令 命令命令c c、C C和和 cccc修改文本对象,并用新输入的文本代替修改文本对象,并用新输入的文本代替老文本。老文本。lc c命令的一般使用方式是:命令的一般使用方式是: c c后面紧接着光标移动命令(限定删除文本的范围),之后面紧接着光标移动命令(限定删除文本的范围),之后是新的文本,最后键击后是新的文本,最后键击lC C命令修改从光标位置到该行末尾的文本。一般方式是:命令修改从光标位置到该行末尾的文本。一般方式是: C C后面紧接着是输入新的文本,最后是后面紧接着是输入新的文本,最后是lcccc命令除影响到整行(不是行的一部分)外,其余作用与命令除影响到整行(不是

17、行的一部分)外,其余作用与C C命令相同。命令相同。2022-5-24305. 5. 取代命令取代命令r命令用随后打入的单个字符取代光标所在的字符命令用随后打入的单个字符取代光标所在的字符R命令用随后打入的文本取代光标位及其右面的若干字符,每打入一命令用随后打入的文本取代光标位及其右面的若干字符,每打入一个字符就替代原有的一个字符。个字符就替代原有的一个字符。6.6.替换命令替换命令ls s(小写)命令用随后打入的的正文替换光标所在的字符(小写)命令用随后打入的的正文替换光标所在的字符lS S(大写)命令用新打入的正文替换当前行(整行)(大写)命令用新打入的正文替换当前行(整行)7. 7. 行

18、结合命令行结合命令l行结合命令行结合命令J J(大写字母)把光标所在行与下面一行结合成一行(大写字母)把光标所在行与下面一行结合成一行2022-5-24318.8.文本位移命令文本位移命令l 命令将限定正文行向右移动,通常是命令将限定正文行向右移动,通常是8 8个空格。个空格。 文本右移命令的一般格式是:文本右移命令的一般格式是: 光标移动命令光标移动命令l 命令将光标所在行右移命令将光标所在行右移8 8个空格。个空格。l 命令将光标所在行左移命令将光标所在行左移8 8个空格。个空格。9.9.过滤命令过滤命令l过滤命令的格式是:过滤命令的格式是: ! ! l其功能是把光标所在行和光标移动命令指

19、定行之间的所有行,由给定其功能是把光标所在行和光标移动命令指定行之间的所有行,由给定的的LinuxLinux命令进行加工,替换原来的那部分正文。命令进行加工,替换原来的那部分正文。2022-5-2432 3.6 编辑文件l编辑已存文件的最常用方式是: $ vi 文件名l从某一指定行进入vi。其格式是: $ vi 行号 文件名l从某一指定词进入vi。其格式是: $ vi /词 文件名l编辑多个文件编辑多个文件 可以同时调入多个文件,依次对它们进行编辑。其命令格式是: $ vi 文件1 文件2 当完成对第一个文件的编辑及存盘(用:w命令)后,输入命令:n就进入第二个文件。 2022-5-2433

20、3.7 字符串检索l向前检索命令的格式是: /模式Enter 系统从光标所在行开始向前查找这个模式,找到第一个相匹配的字符串后,光标就停在该模式的第一个字符上/模式/位移Enter 位移可以是、数字、数字“/ /模式模式/ /” 从光标所在行起始向前检索指定的模式,光标停在首先找到的那一行的前一行的行首“/ /模式模式/ /数字数字” 其功能与上一形式相同,但光标停在匹配行之前倒数第n 行(即,行号=匹配行号n)的行首,这里n是“数字”值“/ /模式模式/+/+” 是从光标所在行起始向前检索指定的模式,光标停在首先找到的那一行的下面一行的行首“ / /模式模式/+/+数字数字” 其功能与上一形

21、式相同,但光标停在匹配行之后正数第n行(即,行号=匹配行号+ n)的行首,这里n是“数字”值2022-5-2434l向后检索命令的格式是: ?模式 Enter ?模式?位移Enterl如果在模式中想包含以下特殊字符: * / 需要使用其转义形式转义形式,即在这些字符前面加上反斜线(),使其失去特殊含义,作为一般字符对待l检索下一个字符串的检索下一个字符串的命令: n 重复检索的方向与上一个检索命令相同 N 重复检索的方向与上一个检索命令相反2022-5-2435l查找字符的命令:查找字符的命令: f字符 在当前行上向前查找给定的字符 F字符在当前行上向后查找给定的字符 ;重复上一次查找动作,查

22、找方向相同 ,反向重复查找 l光标靠近字符的命令:光标靠近字符的命令: t 向前移动光标靠近给定字符,但不在该字符上 T 向后移动光标靠近给定字符,但不在该字符上l置标记命令的格式是:m小写字母l移至标记命令: 标记字母单引号()命令将光标移到预置标记行的开头 标记字母倒单引号()命令将光标精确移到该行的置标记位置2022-5-2436l全局替换命令全局替换命令一般格式是:g /模式命令表 g命令分为两个执行阶段: 第一阶段,对编辑缓冲区中与给定模式相匹配的各行做上标记; 第二阶段,对每个置上标记的当前行(以表示)执行给出的命令表下面是一些常用的全局命令:下面是一些常用的全局命令:lg / s

23、1 / p 打印包含字符串s1的所有行 lg /s1 / s / s2 / 在包含字符串s1的所有行中用字符串s2替换s1的首次出现lg / s1 / s / s2 / g 用字符串s2替换字符s1的所有出现,包括在一行中s1出现多次lg / s1 / s / s2 / gp 功能与上例相同,它还将所有修改过的行显示在屏幕上lg / s1 / s / s2 / gc 确认(confirm)替换。字符串s1每出现一次,就询问你是否用字符串s2替换。如果回答Y ,则进行替换;否则,不做替换lg / s0 / s / s1 / s2 / g 对包含字符串s0的所有行做上标记,然后只对有标记的行进行替

24、换 用字符串s2替换字符串s1lg ! /模式/命令表 其功能是对所有不匹配给定模式的文本行执行给出的命令表lg / / s / / g 在文件的每一行的开头插入给定的空格ls /模式/替代文本/选项 对于每一指定的行,与正则表达式“模式”匹配的第一个字符串用“替代文本”取代2022-5-2437 3.8 ex命令 进入ex 命令的方法是在命令方式下输入冒号(:),则在状态行上出现冒号提示符,随后就可输入ex 命令3.8.1 3.8.1 命令定位命令定位l一种办法是指定行号,例如,一种办法是指定行号,例如, : 20 : 20 光标移到第光标移到第2020行的行首。行的行首。l另一种办法是给定模式,向前或向后查找另一种办法是给定模式,向前或向后查找2022-5-2438ex 命令还用下述字符指定行的地址:l . 当前行。多数命令的默认地址是当前行。l n 编辑器缓冲区中的第n行,行号从1开始顺序编排。l $ 缓冲区中最后一行。l % 1,$(从第1行至最后一行)的缩写。l +n或者n n表示相对当前行的位移lx 如果预先在前面的正文行上利用m命令置上标记,现在要快速地找到或返回到有标记的正文行上,那么就可以利用x的形式,其中x是标记名2022-5-24393.8.2 常用ex命令1e命令 利用e命令可以在编辑当前文件之时编辑另外的文件。当前文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论