第五章 文本编辑器vi

    主要内容

          1.vi简介

          2.vi基本操作 5.1 vi简介 vi做为Linux系统中一种编辑器,它的使用方法和界面与UNIX平台十分相似。在Linux中有很多功能强大,界面友好的编辑器,但是vi还是值得你学习它的使用方法。初步接触vi,你觉得它的界面不太友好,不容易掌握,可是一旦你掌握了vi的命令,你可以感觉到它强大的功能与高效。而且vi相对来说较小,无论你使用任何Linux系统,你总是可以使用vi的。在很多系统中,可能只有vi供你选择。 5.2 vi基本操作 1.进入与离开

    要进入vi可以直接在系统提示字符下键入vi[文件名称],vi可以自动载入所要编辑的文件或是开启一个新文件。进入vi后屏幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。

    要离开vi并保留对文件所进行的修改,可以在命令模式下键入:

    :wq或:x或ZZ (注意冒号)

    如果要离开vi并放弃对文件的修改,可以在命令模式下键入:

    :q!     (注意冒号)

    vi有二种工作模式,即编辑模式和命令模式。用[Esc]键可以切换到命令模式下,如果不知道现在是处于什么模式,可以多按几次[Esc],系统会发出声响以确定进入命令模式。以下所有的命令都是在命令模式下输入。

    2.vi输入模式

    在编辑模式下,所有的键盘输入直接对文件进行编辑。从命令模式进入编辑模式有下面几条指令:

    新增(append)

    a:从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。

    A:从光标所在列最面的地方开始新增资料。

    插入(insert)

    i:从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。

    I:从光标列的第一个非空白字符前面开始插入资料。

    开始(open)

    o:在光标所在列下方新增一列并进入编辑模式。

    O:在光标所在列上方新增一列并进入编辑模式。

    删除与修改

    何谓编辑?在这里我们认为是文字的新增修改以及删除,甚至包括文字区块的搬移、复制等等。这里先介绍vi的如何做删除与修改。(注意:在vi的原始观念里,输入跟编辑是两件事。编辑是在命令模式下操作的,先利用指令移动光标来定位要进行编辑的地方,然后才下指令做编辑。)

    x:删除光标所在字符。

    dd:删除光标所在的列。

    r:修改光标所在字符,r后接着要修正的字符。

    R:进入取代状态,新增资料会覆盖原先资料,直到按[Esc]回到命令模式下为止。

    s:删除光标所在字符,并进入编辑模式。

    S:删除光标所在的列,并进入编辑模式。

    光标移动命令

    光标移动

    命令作用

    〈b〉移动到当前单词的开始

    〈e〉移动到当前单词的结尾

    〈w〉向前移动一个单词

    〈h〉向前移动一个字符

    〈j〉向上移动一行

    〈k〉向下移动一行

    〈l〉向后移动一个字符

    删除操作命令

    删除操作

    命令作用

    〈x〉删除光标所在的字符

    〈dw〉删除光标所在的单词

    〈d$〉删除光标至行尾的所有字符

    〈D〉同〈d$〉

    〈dd〉删除当前行

    可在删除命令前加上数字,如〈5x〉表示删除5行。

    改变与替换操作命令

    改变与替换操作

    命令作用

    〈r〉替换光标所在的字符

    〈R〉替换字符序列

    〈cw〉替换一个单词

    〈ce〉同〈cw〉

    〈cb〉替换光标所在的前一字符

    〈c$〉替换自光标位置至行尾的所有字符〈C〉同〈c$〉

    〈cc〉替换当前行

    查询命令

    查询

    命令作用

    〈/abc〉向前查询abc

    〈?abc〉向后查询abc

    〈n〉向前继续查询

    〈N〉向后继续查询

    拷贝与粘贴命令

    拷贝与粘贴

    命令作用

    〈/yw〉将光标所在单词拷入剪贴板

    〈y$〉将光标至行尾的字符拷入剪贴板〈Y〉同〈y$〉

    〈yy〉将当前行拷入剪贴板

    〈p〉将剪贴板中的内容粘贴在光标后

    〈P〉将剪贴板中的内容粘贴在光标前

    编辑器,vi,命令模式、编辑模式、文本文件

    1.进入和退出vi的方法有哪些?

    2.vi编辑器的工作方式有哪些?相互间如何转换?

    3.在vi中移动光标的方式有哪些?

    4.在vi中如何使用复制、剪切和粘贴的功能?

    5.在vi中如何进行文字的查找与替换?