您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Linux操作系统4 vi
Linux操作系统文件编辑器viliupsLinux——文本编辑器vivi的基本操作vi高级编辑命令vi的设置§3.1进入vivi是一个较大的UNIX命令,在启动的时候也有它自己的选项和参数基本语法:vi[-options][+[n]][file]常用选项有:-r,-R-r用于恢复系统突然崩溃时正在编辑的文件-R用于以只读方式打开文件+n用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行§3.2vi的工作方式vi一共有三种工作方式:命令方式、插入方式和行方式:命令方式插入方式行方式插入命令EscEsc命令执行完:一、命令方式无论用户处于什么状态,按Esc键或组合键Ctrl+[就可以进入命令方式。当用户初始进入vi时,也处于这个状态。用户在命令方式下可以输入各种合法的vi内部命令,这些命令不会回显,而且不需要回车就会被执行二、文本插入方式在命令方式下使用某些命令会导致vi马上进入文本插入方式,这些命令包括:i,I,a,A,o,O等在这种方式下用户的任何输入都被当作是文件的内容看待,并将其显示在屏幕上。三、最后行方式行方式又称为最后行方式,通过在命令方式下键入冒号:可进入这个方式,在这种方式下vi会在屏幕的最后一行显示一个冒号并等待用户输入命令行方式下用户输入的命令将回显在最后一行上,并且直到用户输入回车vi才会去执行它命令执行完毕后,vi自动进入命令状态或者在输入命令时敲Esc键或组合键Ctrl+[、或用退格键删除所有的输入之后再按一下退格键回到命令方式§3.3基本编辑命令移动光标(cursormovement)Bksp左移一个字符Space右移一个字符Enter,+下移一行h左移一个字符l右移一个字符j下移一行k上移一行§3.3基本编辑命令[n]G跳到第n行w,W跳到下一个词的词头b,B跳到上一个词的词头e,E跳到下一个词的词尾^跳到行首(第一个非空字符)[0]跳到行首$跳到行尾§3.3基本编辑命令Ctrl-u向下翻滚1/2屏Ctrl-d向上翻滚1/2屏Ctrl-f向下翻滚1屏Ctrl-b向上翻滚1屏Ctrl-n向下移动一行Ctrl-p向上移动一行上述命令(除[n]G外)的前面均可增加一个数字来控制移动的次数§3.3基本编辑命令修改文本命令(modification)[n]rchar用字符char代替光标处的字符,n指定字符char出现的次数。n缺省为1。[n]Rtext用text的内容替换当前行n次。n缺省为1。命令执行完后处于插入方式,必须按Esc键或组合键Ctrl+[回到命令方式。Cw,cw,cc替换一个词或替换到行尾§3.3基本编辑命令编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行::[n]将光标移到第n行命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符符“$”表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第5行。例如::345将光标移到第345行§3.3基本编辑命令在编辑模式下正确定位光标之后,可用以下命令切换到插入模式(Insert):i在光标左侧输入正文I在光标所在行的开头输入正文a在光标右侧输入正文A在光标所在行的末尾输入正文o在光标所在行的下一行增添新行O在光标所在行的上一行增添新行§3.3基本编辑命令删除文本命令(delete)x删除当前光标所在位置的字符X删除光标前的字符dd删除当前行D删除从当前光标位置直到行尾的所有字符dcursor_movement删除从当前光标位置直到cursor_movement参数指定的位置§3.3基本编辑命令字符串搜索(search)/[pattern]/[offset]CR/[pattern]CR?[pattern]?[offset]CR?[pattern]CR上述四个命令分别表示向下/向上搜索指定的正则表达式[pattern],并将光标停留在相对搜索结果距离为[offset]行处§3.3基本编辑命令n重复命令,搜索得到使用结果后,可以重复命令n或N沿着相同或相反的方向重复上一次的搜索fchar命令在当前行搜索指定的字符并将光标停在匹配字符上tchar命令在当前行搜索指定的字符并将光标停在匹配字符的左边§3.3基本编辑命令字符串替换(Substitute)此命令要求先进入行方式命令的语法为:[addr1,addr2|g]s/find_exp/repl_exp/[g|n][c]上述命令表示在第addr1行到addr2行的范围内将字符串find_exp用repl_exp代替。n表示替换每行的第n个匹配,c表示需要用户确认g放在命令末尾,表示行全程,不加g,表示只对搜索字符串的首次出现进行替换;g放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。§3.3基本编辑命令重复前一命令:.取消上一命令:u重画屏幕:Ctrl-lCtrl_G命令显示当前编辑文本的状态,包括文本共有多少行、文件名以及目前光标停在多少行。文件的保存:行方式下使用w命令§3.3基本编辑命令退出vi:行方式下使用q命令将退出vi,如果文件作过改动但还没有保存,系统将作出提示并取消此次退出动作。行命令x相当于:wq命令。在命令方式下使用命令ZZ等效于:x命令。如果由于读写权限或是更新方面的问题,导致vi拒绝执行保存文件或退出vi的命令,那么可以在命令后加一个!号表示强制执行。§3.4高级命令文件操作命令[addr1,addr2]w[!][filename]:将编辑缓冲区的addr1行到addr2行之间的内容写回到存储介质上的名为filename的文件中去,w后的!表示强制写入。rfilename:将文件filename读入编辑缓冲区efilename:编辑已存在于缓冲区中的、名为filename的文件ffilename:将当前文件重命名为filenamef:打印当前文件名称和状态,如文件的行数、光标所在的行号等上述命令属于行方式§3.4高级命令文本的移动和复制[addr1,addr2]m[addr3][addr1,addr2]t[addr3]上述行方式下的命令分别表示将第addr1行至第addr2行之间的内容移动/拷贝到第addr3行的后面行的合并命令方式下的命令J将当前行的下面一行合并到当前行的末尾§3.4高级命令缓冲区操作vi提供36个编辑缓冲区,它们分别为a-z共26个命名缓冲区,1-9共9个删除缓冲区,另外还有一个未命名的缓冲区,一般称之为buffer0。将文本内容送入缓冲区的命令为:[“char][n]y[cursormovement|y|w|l]Char表示缓冲区的名字,小写表示覆盖写入,大写表示追加写入n表示重复次数cursormovement表示想要写入缓冲区的文本的范围,从光标的当前位置算起。y表示以行为单位w表示以词为单位l表示以字符为单位从缓冲区中提取其内容并将其插入在当前文本的命令为:[“char]p|PP表示放在当前位置之前,p表示放在当前位置之后§3.4高级命令在vi内使用shell用户在运行vi的过程中不用推出vi就可以运行任何UNIX命令::!unix_cmdsCR在unix_cmds参数中,可以使用%作为当前文件名的缩写,用#作为上次编辑文件的缩写,用!作为上次命令的缩写§3.4高级命令使用自定义的缩写:abbr|abstr1str2命令用用户自定义的字符串str1来代替字符串str2:unab|unastr1取消缩写str1上述四个命令都是行方式下的命令§3.4高级命令宏:mapkeycmds_list此时key必须是一个单独的字母。或是一个Ctrl加上一个字母此时定义的是宏命令:map!keystring此时key必须是一个单独的字母。或是一个Ctrl加上一个字母此时定义的是宏字符串,用于文本输入方式:unmapkey将取消key的宏定义§3.4高级命令要注意的是在输入Ctrl+key的转义序列时必须先按下下列组合键:Ctrl-v。如果cmds_list是行方式下的命令,那么在其末尾必须加上一个回车,输入方法为先输入Ctrl-v,然后输入Ctrl-m。Ctrl-m代表回车。§3.5vi的配置vi的配置共有三种方法,一种是在运行vi时使用行命令set来设置;一种是使用EXINIT环境变量;最后一种是使用用户主目录下的.exrc文件。vi的显示是输出到终端上的,所以终端的类型会对vi的显示造成影响。终端类型设置是使用TERM环境变量(ansi,vt100):$TERM=ansi;export$TERM一、行方式下的设置为控制不同的编辑功能,vi提供了很多内部选项。在行方式下使用命令set可以显示和修改vi的各种内部环境变量。基本语法::setargument[=value]一、行方式下的设置命令set的参数及其功能如下:all列出所有选项设置的情况term设置终端类型ignorecase在搜索中忽略大小写list显示制表符(^I)和行尾标志(^M)number显示行号report显示由面向行的命令修改过的行数ruler在屏幕底部显示光标所在行、列的位置terse显示简短的告警信息warn显示简短的未保存告警nomagic取消元字符在搜索字符串中的特殊性nowrapscan搜索时不回绕mesg允许vi显示其他用户用write写到自己终端上的信息shiftwidth指定自动缩进的制表位autoindent自动缩进directory指定编辑缓冲区的路径showmode显示文本插入方式window设置显示的文本行数mk将选项保存在当前目录的.exrc文件中tabstop设置按Tab键跳过的空格数。例如:settabstop=n,n默认值为8二、永久设置方式上面所说的:set命令在退出vi后就失效了,下次进入vi还需要重新设置我们可以将上述:set命令写在一个名为~/.exrc的文件中,这样每次进入vi就会自动执行。或者将需要用到的:set命令保存在EXINIT环境变量中。§3.6vim和gvim的高级特色vim代表ViIMproved,如同其名称所暗示的那样,vim作为标准UNIX系统vi编辑器的提高版而存在。vim除提供和vi编辑器一样强大的功能外,还提供有多级恢复、命令行历史以及命令及文件名补全等功能。gvim是vi的XWindow版本,该版本支持鼠标选中,一些高级光标移动功能,并且带有菜单和工具按钮。§3.6小结vi必须经常使用才能够掌握另外还有一些高级的操作方法,有兴趣的同学可以参考vi的联机手册QUESTIONSANSWERS练习编辑一个文件光标移动插入、修改、删除保存,推出编辑文件/etc/bashrc[\u@\h\W]替换成[\u@\h:\w]保存
本文标题:Linux操作系统4 vi
链接地址:https://www.777doc.com/doc-5266262 .html