`

第十章 vi 的使用

 
阅读更多
基本上 vi 共分为三种模式,分别是『一般模式』『编辑模式』『指令列命令模式』。 这三种模式的作用分别是:

一般模式:
以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

编辑模式:
在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

指令列命令模式:
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
简单的说,我们可以将这三个模式想成底下的图标来表示:



注意到上面的图示,你会发现一般模式可与编辑模式及指令列模式切换, 但编辑模式与指令列模式之间不可互相切换喔!这非常重要啦! 闲话不多说,我们底下以一个简单的例子来进行说明吧!

简易执行范例

如果你想要使用 vi 来建立一个名为 test.txt 的档案时,你可以这样做:

1.使用 vi 进入一般模式;

[root@www ~]# vi test.txt


直接输入『 vi 档名』就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加档名,不管该档名存在与否! 整个画面主要分为两部份,上半部与最底下一行两者可以视为独立的。如下图 2.1.1 所示,图中那个虚线是不存在的, 鸟哥用来说明而已啦!上半部显示的是档案的实际内容,最底下一行则是状态显示列(如下图的[New File]信息), 或者是命令下达列喔!



如果你开启的档案是旧档(已经存在的档案),则可能会出现如下的信息:



如上图 2.1.2 所示,箭头所指的那个『"/etc/man.config" 141L, 4617C』代表的是『档名为 /etc/man.conf, 档案内有 141 行 以及具有 4617 个字符』的意思! 那一行的内容并不是在档案内,而是 vi 显示一些信息的地方喔!此时是在一般模式的环境下啦。 接下来开始来输入吧!

2.按下 i 进入编辑模式,开始编辑文字

在一般模式之中,只要按下 i, o, a 等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示啰!这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!



3.按下 [ESC] 按钮回到一般模式

好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 [Esc] 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!

4.在一般模式中按下 :wq 储存后离开 vi

OK,我们要存档了,存盘并离开的指令很简单,输入『:wq』即可存档离开! (注意了,按下 : 该光标就会移动到最底下一行去!) 这时你在提示字符后面输入『 ls -l 』即可看到我们刚刚建立的 test.txt 档案啦!整个图示有点像底下这样:



如此一来,你的档案 test.txt 就已经建立起来啰!需要注意的是,如果你的档案权限不对,例如为 -r--r--r-- 时,那么可能会无法写入,此时可以使用『强制写入』的方式吗?可以!使用『 :wq! 』 多加一个惊叹号即可!不过,需要特别注意呦!那个是在『你的权限可以改变』的情况下才能成立的! 关于权限的概念,请自行回去翻一下第六章的内容吧!

按键说明

除了上面简易范例的 i, [Esc], :wq 之外,其实 vim 还有非常多的按键可以使用喔!在介绍之前还是要再次强调, vim 的三种模式只有一般模式可以与编辑、指令列模式切换,编辑模式与指令列模式之间并不能切换的! 这点在图2.1里面有介绍到,注意去看看喔!底下就来谈谈 vim 软件中会用到的按键功能吧!

第一部份:一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代等

移动光标的方法



搜寻与取代



删除、复制与贴上



第二部份:一般模式切换到编辑模式的可用的按钮说明

进入插入或取代的编辑模式



第三部份:一般模式切换到指令列模式的可用的按钮说明

指令列的储存、离开等指令



特别注意,在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。

OK!会这些指令就已经很厉害了,因为常用到的指令也只有不到一半!通常 vi 的指令除了上面鸟哥注明的常用的几个外,其他是不用背的,你可以做一张简单的指令表在你的屏幕墙上, 一有疑问可以马上的查询呦!这也是当初鸟哥使用 vim 的方法啦!

一个案例练习

来来来!赶紧测试一下你是否已经熟悉 vi 这个指令呢?请依照底下的需求进行指令动作。 (底下的操作为使用 CentOS 5.2 中的 man.config 来做练习的,该档案你可以在这里下载: http://vbird.dic.ksu.edu.tw/linux_basic/0310vi/man.config。) 看看你的显示结果与鸟哥的结果是否相同啊?

1.请在 /tmp 这个目录下建立一个名为 vitest 的目录;
2.进入 vitest 这个目录当中;
3.将 /etc/man.config 复制到本目录底下(或由上述的连结下载 man.config 档案);
4.使用 vi 开启本目录下的 man.config 这个档案;
5.在 vi 中设定一下行号;
6.移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?
7.移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?
8.接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,9.并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』, 结果会10.在最后一行出现改变了几个 man 呢?
11.修改完之后,突然反悔了,要全部复原,有哪些方法?
12.我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;
13.21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?
14.将这个档案另存成一个 man.test.config 的檔名;
15.去到第 27 行,并且删除 15 个字符,结果出现的第一个单字是什么?
16.在第一行新增一行,该行内容输入『I am a student...』;
17.储存后离开吧!
整个步骤可以如下显示:

『mkdir /tmp/vitest』
『cd /tmp/vitest』
『cp /etc/man.config .』
『vi man.config』
『:set nu』然后你会在画面中看到左侧出现数字即为行号。
先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;
先执行『1G』或『gg』后,直接输入『/bzip2』,则会去到第 118 行才对!
直接下达『 :50,100s/man/MAN/gc 』即可!若一直按『y』最终会出现『在 23 行内置换 25 个字符串』的说明。
(1)简单的方法可以一直按『 u 』回复到原始状态,(2)使用不储存离开『 :q! 』之后,再重新读取一次该档案;
『65G』 然后再『 9yy 』之后最后一行会出现『复制九行』之类的说明字样。 按下『 G 』到最后一行,再给他『 p 』贴上九行!
因为 21~42 22 行,因此『 21G 』→『 22dd 』就能删除 22 行,此时你会发现游标所在 21 行的地方变成 MANPATH 开头啰, 批注的 # 符号那几行都被删除了。
『 :w man.test.config 』,你会发现最后一行出现 "man.test.config" [New].. 的字样。
『27G』 之后,再给他『 15x 』即可删除 15 个字符,出现『 you 』的字样;
先『 1G 』去到第一行,然后按下大写的『 O 』便新增一行且在插入模式;开始输入『I am a student...』后, 按下[Esc]回到一般模式等待后续工作;
『:wq』



如果你的结果都可以查的到,那么 vi 的使用上面应该没有太大的问题啦!剩下的问题会是在…打字练习…。

转自:http://vbird.dic.ksu.edu.tw/linux_basic/0310vi_2.php
  • 大小: 10.3 KB
  • 大小: 21.8 KB
  • 大小: 40.6 KB
  • 大小: 18.6 KB
  • 大小: 20.4 KB
  • 大小: 30.3 KB
  • 大小: 22 KB
  • 大小: 29.1 KB
  • 大小: 21.2 KB
  • 大小: 26.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    数字电子技术第十章习题课PPT课件.pptx

    《数字电子技术第十章——脉冲波形的产生和整形》 在数字电子技术领域,脉冲波形的产生和整形是至关重要的概念,尤其在信号处理和控制系统中扮演着核心角色。本章主要探讨了三种基本电路:施密特触发器、单稳态...

    数字电子技术基础课件:第十章 脉冲波形的产生与整形.ppt

    《数字电子技术基础课件:第十章 脉冲波形的产生与整形》 本章节主要探讨了在数字电子技术中,脉冲波形的产生与整形的关键电路,包括施密特触发器、单稳态触发器、多谐振荡器以及555定时器的应用。这些电路在计算机...

    LabVIEW入门培训PPT教程vi编程基础等资料.zip

    LabVIEW入门培训PPT教程vi编程基础等资料: VI设计选题(参考).doc 实验1—6(40学时).doc 实验1—8(64学时).doc 数据模块.doc ...第十章 数据采集.ppt 第四章 变量、数组与簇.ppt 虚拟仪器课程设计任务1.doc

    Linux基础教程.ppt

    清华大学课件,非常基础的课程,包含15章,...第十章:Linux系统软件的获取和安装;第十一章:帐号管理 第十二章:文件系统管理;第十三章:TCP/IP网络管理 第十四章:备份与恢复;第十五章:XWindow及Genie应用程序

    LabVIEW宝典课件

    第十章:基于组件的程序结构 第十一章:人机交互与编程风格 第六章:属性节点、方法节点及引用 第七章:高级控件的运用 第八章:文本编程与外部接口 第九章:MathScript 第十章:基于组件的程序结构 第十一章:人机...

    四川大学《电路》考研 第十章 正弦电流电路中的功率-教程与笔记习题

    在四川大学的《电路》考研教程中,第十章通常涵盖了这个主题,包含瞬时功率、平均功率、无功功率等概念。 首先,瞬时功率指的是在任意时刻电路中单位时间内的功率消耗或者吸收,通常由电路中电压和电流的乘积表示。...

    linux操作系统应用与维护视频教程详细完整版

    内容包括: 第一部分:linux系统安装与应用操作 ...第十章:linux备份与恢复。 由于文件过大,只提供百度网盘下载地址和提取码,请放心下载。 信誉第一,如有任何问题,可以给我发私信或者评论区留言

    LabVIEW宝典课件.ppt

    第十章:基于组件的程序结构 第十一章:人机交互与编程风格 应用篇 第十二章:VI模板、设计模式、状态图 第十三章:串并口通讯、网络与DSC 第十四章:数据库、报表工具 第十五章:LabVIEW与RT系统 第十六章:...

    redhat linux教材20课程学习文档

    第四章 vi使用 4.1 vi 编辑器简介 4.1.1 vi的简介 4.1.2 vim简介 4.2 打开和退出 vi 4.2.1 进入vi 4.2.2 vi的退出 4.2.3 打开文件、保存文件和退出 vi 编辑器 4.3 vi 的三种模式 4.3.1 vi 的输入模式(Insert mode)...

    清华版labview教程

    提纲 第一章 虚拟仪器及LabVIEW入门 1.1 虚拟仪器概述 1.2 LabVIEW是什么? 1.3 LabVIEW的运行机制 1.3.1 LabVIEW应用程序的构成 1.3.2 LabVIEW的操作...第十章 网络与通讯 第十一章 仪器控制

    Linux期末考试复习资料

    接下来的章节,从第二章到第十章,逐步深入到Linux的实际操作和管理: 第二章,基本命令与开发工具,包括了如ls、cd、mkdir、rm等常用命令的使用,以及像gcc、gdb这样的开发工具。 第三章,编辑器的使用,如vi/vim...

    labview入门教程

    ## 第十章:调用动态链接库 动态链接库导入工具CLN配置、数据类型匹配以及调试技巧是调用DLL的关键。理解C语言指针在LabVIEW中的应用也是必要的。 ## 第十一章:面向对象编程(LVOOP) LabVIEW支持面向对象编程,...

    精通labview程序设计 课件

    第十章:LabVIEW程序结构 本章重点讨论LabVIEW的程序结构,包括顺序结构、分支结构(选择结构)、循环结构(For循环、While循环)以及事件结构。理解这些结构对于编写高效、可维护的代码至关重要。 第十一章:...

Global site tag (gtag.js) - Google Analytics