《linux vi编辑器.ppt》由会员分享,可在线阅读,更多相关《linux vi编辑器.ppt(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、vi编辑器vi编辑器的基本功能启动vi编辑器打开新建文本文件编辑文本文件输入,删除,移动光标,查找,替换,复制,粘贴,撤销等等保存退出退出1vi编辑器vi编辑器是文本编辑器,不是字处理器,所以不支持对文字格式的处理,不能设置排版格式等vi编辑器有100多个命令通常使用vi编辑器编辑配置文件,编写代码,记录信息等2vi编辑器快速入门编辑器快速入门3启动vi编辑器在命令提示符下输入命令vi,回车后,即可启动vi编辑器4编辑文件启动vi编辑器时,vi编辑器处于命令模式,敲击键盘i键,进入文本输入模式,接下来可以输入字符,用Backspace或者Del键删除字符,用回车键控制换行,用上下左右光标键移动
2、位置5保存退出退出输入结束后,按Esc键,使vi进入命令模式然后输入命令 :wq 文件名 保存退出例如 :wq a.txt注释:wq(write quit的缩写)或者输入命令 :q!不保存退出6vi编辑器深入学习编辑器深入学习7新建文件vi 目录名 文件名如果给出的文件名是目录下不存在的文件,则vi编辑器会新建一个文件,并等待用户输入信息8新建文件举例:在家目录下建立你的第一文件,名字为first,在命令提示符下输入如下命令:cd 可以使你进入自己的家目录pwd 查看自己当前所在目录vi first 用vi新建一个文本文件first,界面最下方显示:wq 保存并退出9打开文件vi 目录名 文件
3、名如果给出的文件名是目录下已经存在的文件,则vi编辑器会打开此文件,并显示文件的内容10打开文件举例:打开一个用来存储系统中所有用户信息的文件在命令提示符下输入命令vi /etc/passwd 回车 打开一个存在的文件:q 回车 退出1112小插曲vi编辑器有三种工作模式命令模式:用户的输入不会在屏幕上显示,只会被执行,可以删除字符,移动光标等文本输入模式:可以输入信息等末行模式:用户的输入被显示在vi编辑器屏幕的最后一行,可以实现保存、退出、查找等功能vi编辑器启动后,或者用vi编辑器新建文件,打开文件,vi编辑器均处于命令模式13vi编辑器的三种模式14进入vi文本输入模式六种进入方式i
4、在光标左侧输入正文I 在光标所在行的行首输入正文a 在光标右侧输入正文 A 在光标所在行的末尾输入正文o 在光标所在行的下面增加新行,并在新行的行首输入正文 O 在光标所在行的上面增加新行,并在新行的行首输入正文15上机实验尝试进入vi编辑器文本模式的六种方式实验一种方式后,按ESC键回到命令模式下,就可以再实验另一种方式了!16文本输入模式下文本输入模式下:空格键在光标前插入一个空格退格键将光标回退一个字符的位置,即删除光标前一个字符删除键(Del)删除光标所在位置的字符Tab键(Tab),在光标位置前插入n个空格,可以设置空格的个数,编写代码或者配置文件时,使用tab键控制代码缩进很方便1
5、7文本输入模式下回车键(Enter)添加一个新行光标位于行首时,输入回车键光标位于行尾时,输入回车键光标位于行中时,输入回车键再次强调,文本输入模式下按ESC键,可以使vi编辑器切换到命令模式下命令模式下进入文本输入模式,即前面讲的六种方式18进入命令模式vi编辑器处于任何模式下时(即文本输入模式和末行模式,或者不清楚当前是什么模式),只需按ESC键即可进入命令模式文本输入模式文本输入模式命令模式命令模式末行模式末行模式不清楚当前是什么模式不清楚当前是什么模式ESCESCESCESCESCESC19命令模式下命令模式下:移动光标文本修改删除、撤销、复制、粘贴等等20命令模式下移动光标上下左右光
6、标键移动光标h、j、l(小写的L)、k键移动光标h键向左移动一个字符l键向右移动一个字符j键向下移动一行k键向上移动一行注释:如果移动方向不能再前进(例如,已经是最后一行,还继续按j键的话),你会听到“嘀”的蜂鸣声hlkj21命令模式下移动光标(移动速度快一点)退格键(Backsapce)向左移动一个字符w键向右移动一个单词,移动到单词词首b键向左移动到当前单词的词首,或者移动到前一个单词的词首e键向右移动到当前单词的词尾,或者移动到下一个单词的词尾空格键(spacebar)向右移动一个字符22命令模式下移动光标(移动速度再快一点)$移动光标到当前行的行尾0(数字零)移动光标到当前行的行首回车
7、键(Enter)向下移动一行,并位于行首G 移动到文件的最末行1G 移动到文件的第一行23命令模式下删除Del键删除当前光标位置字符x键同Del键,删除当前光标位置字符dd删除当前光标所在行撤销u撤销ctrl+r取消撤销24命令模式下扩展一下删除命令3dd删除三行内容(包括光标所在的当前行和后面两行)5x删除5个字符(包括光标所在位置的字符和后面4个字符)25命令模式下复制、粘贴yy复制光标所在的当前行内容p(小写p)将最后一次复制的内容粘贴到光标所在行的后面一行P(大写p)将最后一次复制的内容粘贴到光标所在行的前面一行3yy复制三行内容(光标所在位置的当前行和后面两行)26命令模式下替换r替
8、换当前光标位置的字符(输入r后,再输入一个字符,当前光标位置的字符就被替换了,替换后vi编辑器还是处于命令模式)R替换从当前光标位置开始的字符,同时使vi编辑器进入文本输入模式(输入R后,vi编辑器进入文本输入模式,可以输入n个字符,依次替换当前光标位置开始的,后面的n个字符)重复上一次的操作.27命令模式下输入命令ZZ,保存文件,并退出vi编辑器28进入末行模式命令模式下输入 :/?看到vi编辑器界面左下角出现提示信息,vi编辑器就进入了末行模式。29末行模式下保存退出搜索字符串替换在线帮助30末行模式下保存但不退出vi编辑器:w 保存并退出vi编辑器:wq不保存退出vi编辑器:q:q!31
9、末行模式下另存为:w filename 保存文件,并命名为filename,不退出vi编辑器:wq filename 保存文件,并命名为filename,并退出vi编辑器:w!filename 有相同文件名的文件存在,覆盖它!我发现了有重名文件,可是我没有权限看它的内容,但是我能覆盖它,也实现了改变它内容的目的,这是为什么?32末行模式下搜索字符串/要搜索的字符串#向下搜索?要搜索的字符串#向上搜索输入n键,可以在多个匹配项之间进行切换33末行模式下小插曲搜索后,被搜索的字符串高亮度显示,这是vi的默认设置,但是搜索之后,我就不希望他们高亮度显示了,怎么办呢?可以临时取消高亮度显示,输入命令:
10、set nohls 然后回车,是no high light search的缩写34末行模式下替换涉及的参数s 替换当前行中第一个匹配的字符串*,*s 替换指定行数内的字符串%s 全文替换匹配的字符串g 替换命令后加上此参数,替换匹配行中 出现的所有匹配的字符串35末行模式下举例:s/unix/UNIX替换当前行第一个匹配到的unix字符串为UNIX:s/unix/UNIX/g替换当前行所有匹配到的unix字符串为UNIX:1,5s/unix/UNIX替换第1行到第5行第一个匹配到的unix字符串为UNIX:1,5s/unix/UNIX/g替换第1行到第5行所有匹配到的unix字符串为UNIX3
11、6末行模式下举例:%s/unix/UNIX全文替换每行第一个匹配到的unix字符串为UNIX:%s/unix/UNIX/g全文替换每行所有匹配到的unix字符串为UNIX37末行模式下vi编辑器在线帮助:help仔细阅读帮助文件的开始,如何移动光标,如何跳转到相应帮助主题,如何从某一主题返回到上层主题,如何退出帮助?38vi编辑器的高级用法编辑器的高级用法39使用vi编辑器的启动选项vi -R filename 以只读的方式查看文件filename的内容vi -c vi编辑命令 例如vi -c /most filename#打开文件,并所搜most字符串,将光标定位在匹配的行例如vi -c “
12、set nu”filename#打开文件,并显示行号,注意加“”40编辑多个文件vi filename1 filename2 同时打开两个文件先显示第一个文件,然后输入命令:n切换到下一个文件,前提是你对刚才的文件没有修改,如果修改了,有两种选择:n!放弃修改,切换到下一个文件:w#先保存,然后再输入:n切换到下一个文件:ar#显示当前编辑的文件名,用方括号括起来的文件41编辑多个文件:n能切换到下一个文件,那么如果切换到最后一个文件了,如何再切换到上一个文件呢?提示n是单词next的缩写:prev42编辑另一个文件vi filename1:e filename2 不退出vi编辑器,编辑另一个
13、文件filename2如果filename1做了修改,要先对filename1做处理后再编辑,即先输入命令:w ,然后再输入命令:e filename2或者:e!filename2#不对filename1做保存不太常用,了解43读入另外一个文件vi filename1:r filename2 将filename2的内容读入,插入到当前文件的光标位置后的一行很实用44写入另一个文件vi filename1:5 w filename2 把filename的第五行内容写入到文件filename2:5,10 w filename2把filename的第五行到第十行的内容写入到文件filename2如果
14、文件filename2存在,你有写权限的话,可以在w后加个!来强行覆盖45操作符控制域vi编辑器的操作符d 删除文本并保存在缓冲区中y 复制文本并保存在缓冲区中p 将缓冲区的内容粘贴到当前光标位置之下P 将缓冲区的内容粘贴到当前光标位置之上c 删除文本,并使vi进入文本输入模式46操作符控制域vi编辑器的控制域$光标位置到当前行行尾0(数字零)光标位置前到当前行的行首e 光标位置到当前单词的词尾b 光标位置前到当前单词的词首47操作符控制域操作符控制域组合成多种命令两次重复操作符表示控制域为当前行例如dd 、yy根据使用需要灵活组合48实践试回答下面命令的功能d0y$decb3ye7ddc04
15、p49小结用户管理相关文件命令模式下删除、撤销、替换、复制、粘贴末行模式下保存/退出、搜索、替换、在线帮助vi编辑器的高级用法启动选项、编辑多个文件、读入另一个文件、另存为、操作符、控制域50本节课主要内容vi编辑器高级用法数字缓冲区、字母缓冲区定制vi编辑器临时定制永久定制最后的vi命令51vi编辑器的数字缓冲区vi编辑器有9个数字缓冲区,编号为19,每次删除的内容,自动依次放入数字缓冲区,第一次删除的内容放在缓冲区1中,第二次删除时,原缓冲区1的内容放入缓冲区2中,新操作的内容放入缓冲区1中,依次类推,超过9次操作后,即第10次删除的内容放入缓冲区1中后,第1次删除的内容就丢失了。52vi
16、编辑器的数字缓冲区命令模式下输入 3p,意思是从数字缓冲区3中取出内容,放在当前光标位置的后面或者后一行53vi编辑器的数字缓冲区创建一个文件54vi编辑器的数字缓冲区删除第一行内容55vi编辑器的数字缓冲区再删除后面的两行56vi编辑器的数字缓冲区再删除接下来的一行57vi编辑器的数字缓冲区现在在vi编辑器的命令模式下输入2p58vi编辑器的字母缓冲区vi编辑器还有26个字母缓冲区,用小写字母a到z来命名,和数字缓冲区不同的是,用户复制或者删除操作的内容不会自动放在字母缓冲区,如果用户想使用字母缓冲区,必须手工指定59vi编辑器的字母缓冲区add#将删除的当前行放在缓冲区a中byy#将复制的
17、当前行放在缓冲区b中ap#将缓冲区a的内容复制到当前位置缓冲区通用操作格式缓冲区编号操作命令60定制vi编辑器vi编辑器有很多参数可供用户设置,掌握一些常用参数的设置,可以定制个性化vi编辑器工作环境61定制vi编辑器62定制vi编辑器在命令模式下输入:set all 查看所有参数的列表以及参数的当前设置在命令模式下输入:set *?显示参数*的值例如:set tabstop?回车 显示你在vi编辑器的文本插入模式下,输入tab键时,缩进的空格数,空格个数就是参数tabstop的值63定制vi编辑器vi编辑器的参数的值可以分为三类布尔、数值和字符串布尔set *打开开关,使参数*有效set n
18、o*关闭开关,使参数*无效例如 set hls 和set nohls 设置是否高亮度显示匹配串64定制vi编辑器数值set *=12 设置参数*的值为12例如:set tabstop=5 设置tab键缩进5个字符字符串set *=string 设置参数*的值为string例如set fileformat=unix 设置文件格式65定制vi编辑器为什么有的时候,在Linux写好的文本文件,在windows下看时,丢失了换行效果?因为windows下每行文字的结尾是回车符和换行符,linux/unix下每行文字的结尾就是换行符66定制vi编辑器几个常用的参数ignorecase(ic)、noict
19、abstopnumber(nu)、nonushowmatch(sm)、nosmshowmode(smd)、nosmdautoindent(ai)、noai67定制vi编辑器:set ignorecase(ic)或者 :set noic搜索时是否严格区分大小写:set tabstop=5插入模式,按tab键,插入的空格数:set number(nu)或者 :set nonuvi编辑器是否显示行号68定制vi编辑器:set showmatch(sm)、nosm当输入)或者 时,光标会跳转到匹配的(或者,再返回:set showmode(smd)、nosmd显示vi编辑器的状态,如插入、替换:set
20、 autoindent(ai)或者:set noai新行的输入位置是否与上一行对齐69定制vi编辑器其他还有参数,大家可以在命令模式下输入:help*?回车 来查看具体用途,用:q可以退出帮助界面,返回到vi编辑器界面70定制vi编辑器缩写vi编辑器提供编辑内容时的快捷输入方法,用一个简单的字符串代替一长串字符串在命令模式下输入:ab u Unix 回车意思是在vi编辑器的文本输入模式下,输入单独一个u字符后,vi编辑器会自动替换成Unix在命令模式下输入:ab 显示设置的所有缩写字符串在命令模式下输入:unab u 取消u缩写串的定义71定制vi编辑器宏vi编辑器提供命令快捷输入方法在命令模
21、式下输入:map 5 5dd意思是将命令5dd,用5来代替,只要在命令模式下输入5,就相当于输入5dd,删除光标所在行及光标后的四行在命令模式下输入:unmap 5取消快捷命令5的定义72定制vi编辑器以上所有用set命令以及ab、map定义的vi编辑器的工作环境,都属于临时定义,关闭vi编辑器后,定义就取消了!你现在有什么想法?你现在有什么想法?73定制vi编辑器修改配置文件,永久定制vi编辑器的个性化工作环境(直到你重新修改配置)修改的配置文件又分为两种对用户自己的vi编辑器起作用的配置文件对系统所有用户的vi编辑器都起作用的配置文件(系统管理员root才有权限修改)74定制vi编辑器修改
22、用户自己的vi编辑器配置文件,此文件是用户家目录下的.vimrc文件,方法如下:cd 回到用户家目录pwd 确认是位于家目录下ls -a 显示家目录下的所有文件,包括以.开头的隐藏文件,看到文件.vimrccp .vimrc .vimrc_bak 做个备份,免得你修改错了无法恢复75定制vi编辑器vi .vimrc 打开文件.vimrc,开始编辑在命令模式下输入G,定位到文件的末行修改什么呢?例如在文件末尾添加一行信息,内容为set nu在命令模式下输入:wq再次启动vi编辑器查看一个已经存在的文件的内容,是不是每行前面都有行号显示?76定制vi编辑器可以将前面学习的定制vi编辑器的常用参数写
23、在此配置文件中,就可以让对应参数生效,而且是永久生效!现在用另一个用户身份登录,使用vi编辑器,是否仍有行号显示吗?这说明什么?你现在你现在又又有什么想法?有什么想法?77定制vi编辑器修改系统所有用户使用的vi编辑器配置文件,此文件是/etc目录下的vimrc文件,方法如下:su -root 切换成root身份cd /etc 进入/etc目录pwd 确认自己是在/etc目录下ls vim*看到有匹配的文件叫vimrccp vimrc vimrc_bak 做个备份,免得你修改错了无法恢复78定制vi编辑器vi vimrc 打开文件vimrc,开始编辑在命令模式下输入G,定位到文件的末行修改什么
24、呢?例如在文件末尾添加一行信息,内容为set nu在命令模式下输入:wq再次启动vi编辑器查看一个已经存在的文件的内容,是不是每行前面都有行号显示?79定制vi编辑器用不同身份登陆,使用vi编辑器,是否都加行号显示了?这说明什么?可以将前面学习的定制vi编辑器的常用参数写在此配置文件中,就可以让对应参数生效,而且是永久生效,对所有用户永久生效!思考,当/etc/vimrc 和/$HOME/.vimrc的设置出现冲突时,哪个会生效呢?80最后的vi命令在vi编辑器的末行模式下可以运行shell命令:!ls 回车 显示当前目录下的文件:!pwd 回车 显示当前所在目录可以将shell命令的运行结果
25、作为文件的文本内容:r !ls 回车 将当前目录下的文件名保存到文件中81最后的vi命令行连接使用J键,将当前行(光标所在行)下面的一行内容连接到当前行上,放在当前行行末,如果两行连接后产生一个长行,屏幕进行折行显示82最后的vi命令恢复当用户正在编辑文件时,当用户正在编辑文件时,vivi编辑编辑器崩溃了怎么办?除了用户自觉器崩溃了怎么办?除了用户自觉的经常执行保存命令外,幸好,的经常执行保存命令外,幸好,编辑器都带有恢复功能!编辑器都带有恢复功能!83最后的vi命令你可以这样模拟vi编辑器崩溃的情况打开终端,用vi编辑器打开一个文件,修改后,未保存,直接关闭终端界面再打开一个终端,用vi编辑器打开刚才的文件,你会看到一些提示信息,如下张幻灯片所示。这种界面还会出现在,有两个终端都用vi编辑器编辑同一个文件时8485最后的vi命令如果知道有文件要恢复,那么可以直接使用命令恢复vi -r 要恢复的文件的文件名 如果不知道有文件要恢复vi 要恢复的文件的文件名你会发现vi编辑器的待恢复文件是隐藏文件,即以.开头,.swp86最后的vi命令试说出下面命令实现的功能xpddpd$dGd1G.87最后的vi命令:x 命令模式下ctrl+gDsSC键盘没有ESC键怎么办?试试ctrl+88