linuxvi命令详解屏幕文本编辑器Vi

上传人:仙*** 文档编号:62768604 上传时间:2022-03-16 格式:DOC 页数:16 大小:166.50KB
收藏 版权申诉 举报 下载
linuxvi命令详解屏幕文本编辑器Vi_第1页
第1页 / 共16页
linuxvi命令详解屏幕文本编辑器Vi_第2页
第2页 / 共16页
linuxvi命令详解屏幕文本编辑器Vi_第3页
第3页 / 共16页
资源描述:

《linuxvi命令详解屏幕文本编辑器Vi》由会员分享,可在线阅读,更多相关《linuxvi命令详解屏幕文本编辑器Vi(16页珍藏版)》请在装配图网上搜索。

1、linux vi命令详解:屏幕文本编辑器Vi本章将详细介绍liiwx Vi命令。文本编辑器是所有计算机系统中最常使 用的一种工具。用户在使用计算机的时候,往往需要建立自己的文件,无 论是一般的文本文件、数据文件,还是编写的源程序文件,这些工作都离 不开linux vi命令。Linux系统扌是供了一个完整的编辑器家族系列,如Ed、Ex、Vi和 Emacs等,按功能它们可以分为两大类:行编辑器(Ed、Ex)和全屏幕编 辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不 方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显 示在屏幕上,修改的结果可以立即看出来,克服了

2、行编辑的那种不直观的 操作方式,便于用户学习和使用,具有强大的功能。linux vi命令是Linux系统的第一个全屏幕交互式编辑程序,它从诞生 至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编 辑工具,足见其生命力之强,而强大的生命力是其强大的功能带来的。本章中,我们将循序渐进地介绍如何使用linux vi命令来建立、编辑、 显示以及处理文件。(注:文中的大写字母为shift键+相应的小写字 母的组合)linux vi命令简介linux vi命令是Visual interface的简称,它在Linux上的地位就仿佛 Edit程序在DOS上一样。它可以执行输岀、删除、查找、替换、

3、块操作等 众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编 辑程序所没有的。linux vi命令不是一个排版程序,它不象Word或WPS那样可以对宇 体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。1111UX Vi命令没有菜单,只有命令,且命令繁多。Vi有三种基本工作模 式:命令行模式、文本输入模式和末行模式。命令行模式任何时候,不管用户处于何种模式,只要按一下键,即可使linux V谕 令行模式;我们在shell环境(提示符为$)下输入启动linux Vi命令,进入 编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的linux vi命令,用于管理自己的

4、 文档。此时从键盘上输入的任何宇符都被当做编辑命令来解释,若输入的 字符是合法的linux vi命令,则linux vi命令在接受用户命令之后完成相应 的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的 字符不是Vi的合法命令,Vi会响铃报警。文本输入模式在命令模式下输入插入命令i、附加命令a、打开命令0、修改命令c、 取代命令t或替换命令s都可以进入文本输入模式。在该模式下,用户输入 的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本 输入过程中,若想回到命令模式下,按键即可。末行模式末行模式也称ex转义模式。linux vi命令和Ex编辑器的功能是相同的,二者

5、主要区别是用户界 面。在Vi中,命令通常是单个键,例如i、a、。等;而在Ex中,命令是以 按回车键结束的正文行。linux vi命令有一个专门的“转义”命令,可访问很 多面向行的Ex命令。在命令模式下,用户按于键即可进入末行模式下, 此时limixvi命令矣在显示窗口的最后一行(通常也是屏幕的最后一行)显 示一个“:,作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命 令执行完后,linux vi命令自动回到命令模式。例如::1, $s / A / a / g则从文件第一行至文件尾将大写A全部替换成小写a。若在末行模式下输入

6、命令过程中改变了主意,可按键,或用退格键将 输入的命令全部删除之后,再按一下退格键,即可使linux vi命令回到命令 模式下。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要 从文本模式返回,则按Esc键即可。在命令模式下输入即可切换到末行 模式然后输入命令。linux vi命令的进入与退出linux vi命令的进入用户登录到系统中之后,系统给出提示符“贾。在提示符后键入Vi和 想要编辑(或建立)的文件名,便可进入巧。例叮键入命令:$ vi example .c屏幕显示如下:22“ example.c New File如果只键入Vi,而不带文件名,也可以进入Vi。之后在光标处键

7、入文 件内容,退出Vi时,只需在退出命令后输入文件名即可。进入Vi之后,首先进入的就是命令模式,也就是说等待命令输入而不是文 本输入。这时输入的字母都将作为命令来解释。光标停在屏幕第一行首位 上(用表示),其余各行行首均有一个符号,表示该行为空行。最后 一行也称状态行,显示出当前正在编辑的文件名以及其状态。如本例是New File,表示example.c是一个新建的文件。如果example.c文件已在 系统中存在,那么输入上述命令后,则在屏幕上显示出该文件的内容,并 且光标停在第一行的首位,在状态行显示岀该文件的文件名、行数和宇符 数。例2键入命令:$ vi example .c然后键入:#i

8、ncludemain () int k ;for ( k=0 ; k3 ; k+) add ();add () static int x=0;x+ ;priiitf (x 二 %dif x);example .c I New File I注意,在这里我们为了节省篇幅起见,屏幕只显示15行。事实上,初 始的显示行数与用户所用终端有关,一般的CRT终端可显示25行。在窗口 系统中,显示行数与运行lim】x vi命令的那个窗口有关。然而我们可以对显示行数进行设:例如,在能显示25行的CRT终端上,让Vi只显示15行。设置的方法将在本节后面介绍。当用liinix vi命令建立一个新文件时,在进Alin

9、ux vi命令中也可以不 给出文件名,当编辑完文件需要保存数据时,再由用户指定文件名。进入linux vi命令时,用户不仅可以指定一个待编辑的文件名,而且还 有许多附加操作。如果希望在进Alinux v谕令之后,光标处于文件中特定的某行上,可 在linux vi命令后加上任选项+n,其中n为指定的行数。例3键入命令:$ vi +5 example 1 .c后,屏幕显示如下:# includemain () int k ;for ( k=0 ; k3 ; k+) add ();add () static int x二0;x+ ;priiitf (“x = %dW x);zexample.c 12

10、 lines, 125 chaiacters光标将位于文件example 1 .c中的第5行上。如果希望在进入limix vi命令之后光标处于文件最末行,则只需把命令 中附加项后面的数宇n省略掉即可。在进Alinux v谕令时,除了可以指定一个光标起始行号之外,还可以 在命令中指定一个模式串,此时在进Alinux v谕令后,光标就处于文件中 第一个与指定模式串相匹配的那行上。例4键入命令:$ vi +/int example l.c屏幕显示如下:#includemain () int k ;for ( k=0 ; k3 ; k+) add ();add () static int x=0;x+

11、 ;priiitf (4x = %dir,x);example.c 12 lines, 125 chaiacters光标将位于文件example l.c中的第3行上。使用linux vi命令可以同时编辑多个文件,只要在进入liiiux vi命令的 命令中写入所要操作的文件即可,还可以使用通配符。例5键入命令:$ vi * .cat就可以编辑所有后缀为cat的文件了。当然,您还可以使用shell中内置 的模式匹配来装载文件,这样会更富技巧性。一旦您在命令行中包含了所 有的待编辑文件名,就可以在linux vi命令中方便地移来移去。退岀Vi当编辑完文件,准备退出Vi返回到shell时,可以使用以下

12、几种方法之* O在命令模式中,连按两次大写宇母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改 过,则Vi直接退出,返回到shell。在末行模式下,输入命令:wlmux vi命令保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。例6:w newfile此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不 变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给岀提示信 自丿File exists (use ! to ovenide)此时,若用户真的希望用文件的

13、当前内容替换newfile中原有内容,可使用命令:w! newfile否则可选择另外的文件名来保存当前文件。在末行模式下,输入命令:q系统退出linux vi命令返回到shell。若在用此命令退出Vi时,编辑文件 没有被保存,则Vi在显示窗口的最末行显示如下信息:No write since last change (use ! to ovenides)提示用户该文件被修改后没有保存,然后linux vi命令并不退出,继续 等待用户命令。若用户就是不想保存被修改后的文件而要强行退岀linux vi 命令时,可使用命令:q!linux vi命令放弃所作修改而直接退到shell下。在末行模式下,输

14、入命令:wqlinux vi命令将先保存文件,然后退linux vi命令返回到shell。在末行模式下,输入命令:x该命令的功能同命令模式下的ZZ命令功能相同。linux vi命令中的行号linux vi命令中的许多命令都要用到行号及行数等数值。若编辑的文件 较大时,自己去数是非常不方便的。为此linux vi命令提供了给文本加行号 的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之 后。使用的命令为:在末行方式下输入命令::set number需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件 内容的一部分。一、Unix编辑器概述编辑器是使用计算机的重要工具之一,在各种

15、操作系统中,编辑器都是必不可少 的部件。Unix及其相似的ix操作系统系列中,为方便各种用户在各个不同的环境中使 用,提供了一系列的ex编辑器,包括ex, edited和vi其中ex,edited都是行编辑 器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终 端用户的需要。值得庆幸的是,Unix提供了全屏幕的Vi编辑器,这使我们的工作轻松 不少。不少DOS用户抱怨Vi编辑器不象DOS下的编辑器如edit那么好用,这是因为Vi 考虑到各种用户的需要,没有使用某些通用的编辑键(在各个不同的终端机上他们的 定义是不同的,在某些终端机上甚至没有这些键)。而是采用状态切换的方

16、法,但这 只是习惯的问题,一旦你熟练的使用上了vi你就会觉得它其实也很好用。虽然Vi采用了状态切换的方法,但电脑的硬件及操作系统多种多样,某些电脑的 键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在Unix系 统上也一样,几乎各大电脑厂商都有自己的Unix系统,而vi的操作方法也会随之有 点出入。这里我们采用PC的键盘来说明vi的操作,但在具体的环境中还要参考相应 的资料,这一点是值得注意的。二、Vi入门(一)、进入W在系统提示字符(如$、#)下敲入vi v档案名称,vi可以自动帮你载入所要编 辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。进入vi后萤幕左 方会

17、岀现波浪符号,凡是列首有该符号就代表此列目前是空的。(二)、两种模式如上所述,vi存在两种模式:指令模式和输人模式。在指令模式下输入的按键将 做为指令来处理:如输入a, vi即认为是在当前位置插入字符。而在输入模式下,vi 则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输 入命令即可(如可A),而要从输入模式切换到指令模式,则需在输入模式下键入 ESC键,如果不晓得现在是处於什麽模式,可以多按几次ESC,系统如发岀呼呼声 就表示已处于指令模式下了。付:在指令模式进入输入模式的指令:新增(append)a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动

18、。A:从光标所在列最後面的地方开始新增资料。插入(insert)i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 I:从光标所在列的第一个非空白字元前面开始插入资料。开始(open)o :在光标所在列下新增一列并进入输入模式。0:在光标所在列上方新增一列并进入输入模式。(三)、退出W在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退岀vi。其中:wq和:x是存盘 退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会 失效,这时你可以用:w命令保存文件后再用:q退出,或用:wq或:X命令退出,如果你 不想保存改变后的文件,你就需要用:q

19、!命令,这个命令将不保存文件而直接退出vi。(四)、基本编辑配合一般键盘上的功能键,像是方向键、Insert、Delete等等,现在你应 该已经可以利用vi来编辑文件了。当然vi还提供其他许许多多功能让文字的处理更 为方便。何谓编辑? 一般认为是文字的新增、修改以及删除,甚至包括文字区块的搬移、 复制等等。先这里介绍vi的如何做删除与修改。(注意:在vi的原始观念里,输入 跟编辑是两码子事。编辑是在指令模式下操作的,先利用指令移动光标来定位要进行 编辑的地方,然後才下指令做编辑。)删除与修改文件的命令:x:删除光标所在字符。dd :删除光标所在的列。r :修改光标所在字元,後接著要修正的字符。

20、R:进入取替换状态,新增文字会覆盖原先文字,直到按ESC回到指令模式下为 止。s:删除光标所在字元,并进入输入模式。S:删除光标所在的列,并进入输入模式。其实呢,在PC上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如 要删除字元,直接按Delete不就得了。而插入状态与取代状态可以直接用 Insert切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指 令几乎是每台终端机都能用,而不是仅仅在PC上。在指令模式下移动光标的基本指 令是h, j, k, I。想来各位现在也应该能猜到只要直接用PC的方向键就可以了,而且 无论在指令模式或输入模式下都可以。多容易不是。当然PC键

21、盘也有不足之处。有 个很好用的指令u可以恢复被删除的文字,而U指令则可以恢复光标所在列的所有 改变。这与某些电脑上的Undo按键功能相同。三、附件:vi详细指令表进入vi的命令vi filename:打开或新建文件,并将光标置于第一行首vi +n filename:打开文件,并将光标置于第n行首vi + filename:打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename:在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename.filename:打开多个文件,依次进

22、行编辑移动光标类命令h:光标左移一个字符 I:光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n:光标下移一行 Enter:光标下移一行 w或W:光标右移一个字至字首 b或B:光标左移一个字至字首 e或E :光标右移一个字至字尾 ):光标移至句尾 (:光标移至句首:光标移至段落开头:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H:光标移至屏幕顶行M:光标移至屏幕中间行L:光标移至屏幕最后行0:光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文

23、件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl + b:向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令i:在光标前I:在当前行首a:光标后A:在当前行尾0:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之new或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的个字do:删至行首d$:删至行尾ndd:删除当前行及其后行x或X:删除

24、一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/pl/p2/g:将当前行中所有pl均用p2替代:nlzn2s/pl/p2/g:将第nl至m2行中所有pl均用p2替代:g/pl/s/p2/g:将文件中所有pl均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位(ctrl+i)和行尾标志($)n

25、umber:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示no write信息 nomagic:允许在搜索模式中,使用前面不带的特殊字符 nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:nl,n2 co n3:将nl行到n2行之间的内容拷贝到第n3行下:nlzn2 m n3:将nl行到n2行之间的内容移至到第n3行下:nlzn2 d :将nl行到n2行之间的内容删除:w:保存当前文件:e file name:打开文

26、件filename进行编辑:x:保存当前文件并退出:q:退岀vi:q!:不保存文件并退出vi:!command:执行shell命令command:nlzn2 wcommand:将文件中nl行至n2行的内容作为command的输入并执行之,若不指定nl, n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行寄存器操作H?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个 数字H?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 H?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 H?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可 以是一个数字ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!