博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《嵌入式 Linux C 语言应用程序设计(修订版)》——2.2 嵌入式Linux编辑器vi的使用...
阅读量:6846 次
发布时间:2019-06-26

本文共 2672 字,大约阅读时间需要 8 分钟。

本节书摘来异步社区《嵌入式 Linux C 语言应用程序设计(修订版)》一书中的第2章,第2.2节,作者:华清远见嵌入式培训中心,孙琼,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 嵌入式Linux编辑器vi的使用

嵌入式 Linux C 语言应用程序设计(修订版)

vi是Linux系统的第一个全屏幕交互式编辑程序,它从诞生至今一直得到广大用户的青睐,历经数十年后仍然是人们主要使用的文本编辑工具,足见其生命力之强,其强大的编辑功能可以同任何一个最新的编辑器相媲美。

虽然用惯了Windows中的Word等编辑器的读者在刚刚接触时会有或多或少地不适应,但只要习惯之后,就能感受到它的方便与快捷。

小知识 Linux系统提供了一个完整的编辑器家族系列,如Ed、Ex、Vi和Emacs等,按功能它们可以分为两大类:行编辑器(Ed、Ex)和全屏幕编辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,从而克服了行编辑的那种不直观的操作方式,便于用户学习和使用,具有强大的功能。

2.2.1 vi的基本模式

vi编辑器的使用按不同的使用方式可以分为3种状态,分别是命令行模式(Command Mode)、插入模式(Insert Mode)和底行模式(Last Line Mode),各模式的功能区分如下。

1.命令行模式(Command Mode)

在该模式下用户可以输入命令来控制屏幕光标的移动,字符、字或行的删除,移动复制某区段,也可以进入到底行模式或者插入模式下。

2.插入模式(Insert Mode)

用户只有在插入模式下才可以进行文字输入,用户按[Esc]键可回到命令行模式下。

3.底行模式(Last Line Mode)

在该模式下,用户可以将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。这一模式下的命令都是以“:”开始。

不过在一般使用时,人们通常把vi简化成两个模式,即将底行模式(Last Line Mode)也归入命令行模式中。

2.2.2 vi的基本操作

1.进入与离开vi

进入vi可以直接在系统提示字下键入vi<文档名称>,vi可以自动载入所要编辑的文档或是开启一个新的文档。如在shell中键入vi hello.c(新建文档)则可进入vi画面。如图2.1所示。

进入vi后屏幕左方会出现波浪符号,凡是具有该符号就代表此列目前是空的。此时进入的是命令行模式。

要离开vi可以在底行模式下键入“:q”(不保存离开),“:wq”(保存离开)指令则是存档后再离开(注意冒号)。如图2.2所示。

8605df9ed418e83baf42c5121f03e8b48f9d3fe1

图2.2 在vi中退出文档

2.vi中3种模式的切换

vi的使用中3种模式的切换是最为常用的,在处理的过程中,读者要时刻注意屏幕左下方的提示。在插入模式下,左下方会有“插入”字样,而在命令行或底行模式下则无提示。

(1)命令行模式、底行模式转为插入模式

在命令行模式或底行模式下转入到插入模式有3种方式,如表2.1所示。

5b3607d8f9a240237346a37c33341a67d55e62b3

在这里,最常用的是“i”,在转入插入模式后如图2.3所示。 图像说明文字 图2.3 命令模式转入插入模式 (2)插入模式转为命令行模式、底行模式 从插入模式转为命令行模式、底行模式比较简单,只需使用[Esc]键即可。 (3)命令行模式与底行模式转换 命令行模式与底行模式间的转换不需要其他特别的命令,而只需要直接键入相应模式中的命令键即可。 #### 3.vi的删除、修改与复制 在vi中进行删除、修改都可以在插入模式下使用键盘上的方向键及[Delete]键,另外,vi还提供了一系列的操作指令可以大大简化操作。 这些指令记忆起来比较复杂,希望读者能够配合操作来进行实验。以下命令都是在命令行模式下使用的。 表2.2所示为vi的删除、修改与复制命令。

3f8394a02962aa6709f97dfcb13892b3d1b40b82

4.vi的光标移动

由于许多编辑功能都是通过光标的定位来实现的,因此,掌握vi中光标移动的方法很重要。虽然使用方向键也可以实现vi的操作,但vi的指令可以实现复杂的光标移动,只要熟悉以后都非常方便,希望读者都能切实掌握。

表2.3所示为vi中的光标移动指令,这些指令都是在命令行模式下使用的。

7a3d7385e447153309eba11d872800d2f332ffd7

5.vi的查找与替换

在vi中的查找与替换也非常简单,其操作有些类似在Telnet中的使用。其中,查找的命令在命令行模式下,而替换的命令则在底行模式下(以“:”开头),其命令如表2.4所示。

d168996a65580b1e1d95431700378ec39d4b8e0a

6.vi的文件操作指令

vi中的文件操作指令都是在底行模式下进行的,所有的指令都是以“:”开头,其命令如表2.5所示。

47ae60e3a037618c5a55b7b7ab751e496e9c181a

2.2.3 vi的使用实例分析

本节给出了一个vi使用的完整实例,通过这个实例,读者一方面可以熟悉vi的使用流程,另一方面也可以熟悉Linux的操作,希望读者能够首先自己思考每一步的操作,再看后面的实例解析答案。

1.vi使用实例内容

(1)在/root目录下建一个名为/vi的目录。

(2)进入/vi目录。

(3)将文件/etc/inittab复制到/vi目录下。

(4)使用vi打开/vi目录下的inittab。

(5)将光标移到该行。

(6)复制该行内容。

(7)将光标移到最后一行行首。

(8)粘贴复制行的内容。

(9)撤销第9步的动作。

(10)将光标移动到最后一行的行尾。

(11)粘贴复制行的内容。

(12)光标移到“si::sysinit:/etc/rc.d/rc.sysinit”。

(13)删除该行。

(14)存盘但不退出。

(15)将光标移到首行。

(16)插入模式下输入“Hello,this is vi world!”。

(17)返回命令行模式。

(18)向下查找字符串“0:wait”。

(19)再向上查找字符串“halt”。

(20)强制退出vi,不存盘。

2.vi使用实例解析

在该实例中,每一步的使用命令如下所示。

(1)mkdir /root/vi

(2)cd /root/vi

(3)cp /etc/inittab ./

(4)vi ./inittab

(5)17(命令行模式)

(6)yy

(7)G

(8)p

(9)u

(10)$

(11)p

(12)21G

(13)dd

(14):w(底行模式)

(15)1G

(16)i 并输入“Hello,this is vi world!”(插入模式)

(17)Esc

(18)/0:wait(命令行模式)

(19)?halt

(20):q!(底行模式)

转载地址:http://mdvul.baihongyu.com/

你可能感兴趣的文章
Day6 python基础
查看>>
AngularJS $watch 监听
查看>>
开启SharePoint Server 2013 中的“微博”功能——新闻源
查看>>
Spring注解@Component、@Repository、@Service、@Controller区别 .
查看>>
ACM-ICPC北京赛区2017网络同步赛
查看>>
天才们为什么独身一世?
查看>>
Exchange 2013 OWA搜索邮件失败问题处理
查看>>
linux系统计算从1加到100之和思路风暴
查看>>
Skype for Business Server 2015-12-WAP-发布-1-前端服务器-OWAS01
查看>>
下一代RDS技术预览版RemoteFX实测体验
查看>>
Oracle体系结构
查看>>
高性能的MySQL(3)单条查询问题还是服务器问题
查看>>
NSIS x64 位系统下安装
查看>>
VMware vSphere虚拟机文件介绍
查看>>
高性能的MySQL(5)创建高性能的索引一B-Tree索引
查看>>
RHEL6网络相关配置
查看>>
RHEL6.3配置文件共享(4) Samba服务之二
查看>>
Cookie和JS购物车的简单实例
查看>>
Exchange-清理AD上残留Exchange信息
查看>>
持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)
查看>>