嵌入式Linux上的C语言编程实践--第3章 Linux的文本编辑工具VI
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1.2 vi的工作模式
A a I i O o : / ?
图3-1 vi工作模式的转换
3.1.3 vi的启动与退出
在Shell下输入vi命令后,便进入全屏幕编辑环 境 命令格式是:vi [文件名] [+n][+/str] 保存与退出
:w--保存但不退出 :w <文件名>--另存为 :wq--保存后退出 ;q!--不保存退出 :q--未编辑,直接退出,编辑过则提示但不退出
习
题
3-1 vi编辑器的工作方式有哪些?相互之 间如何转换? 3-2 简述Linux下的复制与粘贴操作。 3-3 要将文件中的所有字符串str1全部用字 符串str2替换,应使用什么命令?若只将8-15 行中的str1替换为str2,又应使用什么命令? 3-4 如何在vi中显示文本的行号? 3-5 如何保存编辑过的文件并退出?如何 放弃对一个文件的修改并退出?如何实现另存 为?
3.1.2 vi的工作模式
3. 末行模式(Last line mode)--底行模式 末行模式也称为ex转义模式。在末行模式下, 光标停留在屏幕的最末行,在此接收输入的命令并 执行。末行模式用于执行一些全局性操作,如文件 操作、参数设置、查找与替换、拷贝与粘贴、执行 Shell命令等。 在文本编辑过程中,用户可以控制vi在这三种 工作模式之间进行切换,完成各种编辑工作。三种 模式之间的转换关系如图3-1所示。
3.1.1 vi文本编辑器介绍
2. 适用于各种版本的Unix/Linux系统 vi是Unix/Linux系统的标准文本编辑器, 几乎每一台Unix/Linux系统上都会有vi,这是 其他编辑器无法相比的。 3. 适用于各种类型的终端 vi得以广泛应用的原因之一是它对终端设 备的广泛适应性。不管是只有打字机键盘加 Esc键的简单终端,还是受通信限制的远程终 端,或是配有完备的功能键和鼠标的现代化终 端,都可以很好地支持vi完成文本编辑工作。
3.1.1 vi文本编辑器介绍
vi是一个全屏幕文本编辑器,具有文本编辑所 需的所有功能。vi以高效和快捷著称,这是vi 能够在编辑器领域中保持几十年领先地位的原 因。以下介绍vi的几个突出特点
3.1.1 vi文本编辑器介绍
1. 编辑功能强大 vi的编辑功能十分强大,除通常的编辑功能外,vi 还支持一些高级编辑特性,如正则表达式、宏和命令 脚本。利用这些特性可以完成非常复杂的编辑任务, 实现编辑的智能化和自动化。另一方面,vi的功能又 十分专注,它只是一个编辑器,没有其他功能。Linux 系统提供了许多专门用途的工具,如排版、排序、流 过滤、E-mail、编译等软件。vi可以和这些工具软件协 同工作,从而实现几乎所有的文件加工处理任务。用 一些小而精悍、功能专一的工具结合起来完成复杂的 处理功能,这正是Unix的设计哲学。
常用命令介绍
部分底行命令
:set ai/noai--设置/取消自动缩进
:set nu/nonu--设置/取消行号显示 :set hlsearch/nohlsearch--设置/取消高亮显示搜索
到的字符串 :n--跳转到第n行 :n1,n2con3--将第n1至n2之间的行复制到第n3行下 面。 :n1,n2mn3--将第n1至n2之间的行移动到第n3行下面 。 :n1,n2d--删除第n1至n2之间的行
合并行命令
J--将光标所在行的下一行合并到当前行
常用命令介绍
替ຫໍສະໝຸດ Baidu(改写)文本命令
r--用随后输入的一个字符替换当前字符 R--用随后输入的字符替换光标位置开始的若干字符 ,每输入一个字符就替换一个原有字符,直到按Esc 键。(相当于进入改写状态) s--用随后输入的一个或多字符替换当前光标位置的 一个字符,若只输入一个则与r命令相同。 S--用新输入的内容替换当前行(不管光标在行中何 处)
常用命令介绍
查找字符串命令
/str--从光标处往后搜索字符串str ?str--从光标处往前搜索字符串str n--在执行以上查找命令的基础上继续搜索下一个str N--在执行以上查找命令的基础上反向搜索下一个str
常用命令介绍
查找替换命令 :m,ns/str1/str2/g[c]--将第m行与第n行之间 的所有str1替换成str2,如果后面是g,则自动替换 (替换前不提示),如果后面为c,则每次替换前 均要提示是否替换。例如: :4,15s/str1/str2/g--自动替换第4行到第15 行中的str1 :s/str1/str2/g--只替换当前行中的str1 :%s/str1/str2/g--替换所有行中的str1,等 价于:1,$s/str1/str2/g
第3章 Linux的文本 编辑工具VI
1
3.1
vi文本编辑器概述
与Unix相同,Linux本质上是一个文本驱动(text-driven) 的操作系统。 文本文件就是全部由ASCII码字符及某种语言的编码字 符构成的文件,不含有任何样式和格式信息。 文本文件可以被任何文本编辑器解释而不会出现乱码 ,还可以被所有程序操作和使用。 在Linux系统中,文本文件被广泛地用作系统配置文件 和系统工具软件的操作对象。这使得用户可以在文本 方式下完成所有的工作,如编写程序和命令脚本、读/ 写电子邮件、配置和管理系统等。而完成所有这些工 作的基本工具就是文本编辑器。因此,Linux的用户应 当熟悉至少一种文本编辑器。
3.1.2 vi的工作模式
vi是一个多模式的软件,它有三种工作模式。 在不同的工作模式下,它对输入的内容有不同 的解释。
1. 命令模式(Command mode) 在命令模式下,输入的任何字符都作为命令来 解释执行,屏幕上不显示输入内容。命令模式用于 完成各种文本修改工作。 2. 输入模式(Insert mode) 在输入模式下,输入的任何字符都将作为文件 的内容被保存,并显示在屏幕上。输入模式用于完 成文本录入工作。
3.1.1 vi文本编辑器介绍
4. 使用灵活快捷 广泛适应性带来的问题是繁多的命令。对于同一 项编辑操作,vi提供了许多不同的命令。vi的命令都很 简练,往往是单个字符或少数几个字符的组合。对初 学者来说,使用这些命令并不方便,甚至过于复杂。 但对于熟练的用户来说,更多的选择意味着更大的自 由,简单的命令意味着更少的击键次数。正因为如此 ,vi被看做是Linux开发人员和系统管理员的编辑利器 。初学者经过一段时间的使用,也会逐渐习惯vi的操 作方式,并形成自己特有的操作风格。
3.1.1 vi文本编辑器介绍
Linux下的文本编辑器有ex、sed、vi和emacs等很 多种。其中,vi是最基本的文本编辑工具。 vi(visual)诞生于1978年,由柏克莱大学的Bill Joy 编写。从其诞生至今,vi始终是所有Unix/Linux 系统上必配的编辑器,甚至在DOS、Windows、 Macintosh、OS/2乃至IBM大型机S/390系统上都 能见到vi的某个版本。 目前Linux系统上流行的版本是vi增强版vim(vi improved)。vim是一个开放源代码软件,它在vi 的基础上增强了功能,也更容易使用。现在许多 Linux发行版中的vi就是vim。
常用命令介绍
文本选择
v--进入按字选择模式:上下左右移动光标进行文本 选择(可任意选择) V--进入按行选择模式:上下移动光标进行文本行的 选择(只能选择若干行)
常用命令介绍
剪切命令 d--剪切选定的内容至剪贴板 dd--剪切当前行至剪贴板 复制命令 y--复制选定的内容至剪贴板 yy--复制当前行至剪贴板 粘贴命令 p--将剪切板中的内容粘贴到下一行(或当前光标之前) P--将剪切板中的内容粘贴到上一行(或当前光标之后) 高级用法提示-使用多个剪切板的方法: 在使用剪切或复制命令前先按"<小写字母>,便可将相应的内容剪 切或复制到小写字母对应的剪贴板中,在粘贴命令前用"<小写字 母>便可将指定的剪贴板中的内容粘帖到相应的位置。如 "ad "bdd "cy "dyy "cp "bP
常用命令介绍
删除文本命令
x--删除当前光标位置的字符(del) nx--删除n个字符 X--删除当前光标前的字符(backspace)nX dd--删除当前行 (ndd--删除当前行开始的n行) D--删除光标位置到行尾之间的字符(删后半行) d0--删除光标位置到行首之间的字符(删前半行) 注:删除的内容均进入剪贴板
常用命令介绍
文本插入命令
a--在当前光标后插入字符 A--在行尾插入 i--在当前光标前插入字符 I--在行首插入 o--在当前行的下一行插入新行 O--在当前行的上一行插入新行
常用命令介绍
移动光标命令
h j k l--左、下、上、右移动光标,相当于光标键的 作用。 b B w W e E--以单词为单位移动光标 ( )--以句为单位移动光标 { } --以段为单位移动光标 ^f ^b--前后翻页(^f--pagedown ^b--pageup) 0 $--移动光标到行首(0)或行尾($) nG--移动光标到第n行(1G--到文本首行,1G==gg) G--光标移到文本末行