当前位置:
文档之家› 嵌入式Linux上的C语言编程实践--第3章 Linux的文本编辑工具VI
嵌入式Linux上的C语言编程实践--第3章 Linux的文本编辑工具VI
3.1.2 vi的工作模式
vi是一个多模式的软件,它有三种工作模式。 在不同的工作模式下,它对输入的内容有不同 的解释。
1. 命令模式(Command mode) 在命令模式下,输入的任何字符都作为命令来 解释执行,屏幕上不显示输入内容。命令模式用于 完成各种文本修改工作。 2. 输入模式(Insert mode) 在输入模式下,输入的任何字符都将作为文件 的内容被保存,并显示在屏幕上。输入模式用于完 成文本录入工作。
习
ቤተ መጻሕፍቲ ባይዱ
题
3-1 vi编辑器的工作方式有哪些?相互之 间如何转换? 3-2 简述Linux下的复制与粘贴操作。 3-3 要将文件中的所有字符串str1全部用字 符串str2替换,应使用什么命令?若只将8-15 行中的str1替换为str2,又应使用什么命令? 3-4 如何在vi中显示文本的行号? 3-5 如何保存编辑过的文件并退出?如何 放弃对一个文件的修改并退出?如何实现另存 为?
3.1.1 vi文本编辑器介绍
4. 使用灵活快捷 广泛适应性带来的问题是繁多的命令。对于同一 项编辑操作,vi提供了许多不同的命令。vi的命令都很 简练,往往是单个字符或少数几个字符的组合。对初 学者来说,使用这些命令并不方便,甚至过于复杂。 但对于熟练的用户来说,更多的选择意味着更大的自 由,简单的命令意味着更少的击键次数。正因为如此 ,vi被看做是Linux开发人员和系统管理员的编辑利器 。初学者经过一段时间的使用,也会逐渐习惯vi的操 作方式,并形成自己特有的操作风格。
3.1.1 vi文本编辑器介绍
2. 适用于各种版本的Unix/Linux系统 vi是Unix/Linux系统的标准文本编辑器, 几乎每一台Unix/Linux系统上都会有vi,这是 其他编辑器无法相比的。 3. 适用于各种类型的终端 vi得以广泛应用的原因之一是它对终端设 备的广泛适应性。不管是只有打字机键盘加 Esc键的简单终端,还是受通信限制的远程终 端,或是配有完备的功能键和鼠标的现代化终 端,都可以很好地支持vi完成文本编辑工作。
常用命令介绍
删除文本命令
x--删除当前光标位置的字符(del) nx--删除n个字符 X--删除当前光标前的字符(backspace)nX dd--删除当前行 (ndd--删除当前行开始的n行) D--删除光标位置到行尾之间的字符(删后半行) d0--删除光标位置到行首之间的字符(删前半行) 注:删除的内容均进入剪贴板
第3章 Linux的文本 编辑工具VI
1
3.1
vi文本编辑器概述
与Unix相同,Linux本质上是一个文本驱动(text-driven) 的操作系统。 文本文件就是全部由ASCII码字符及某种语言的编码字 符构成的文件,不含有任何样式和格式信息。 文本文件可以被任何文本编辑器解释而不会出现乱码 ,还可以被所有程序操作和使用。 在Linux系统中,文本文件被广泛地用作系统配置文件 和系统工具软件的操作对象。这使得用户可以在文本 方式下完成所有的工作,如编写程序和命令脚本、读/ 写电子邮件、配置和管理系统等。而完成所有这些工 作的基本工具就是文本编辑器。因此,Linux的用户应 当熟悉至少一种文本编辑器。
常用命令介绍
文本选择
v--进入按字选择模式:上下左右移动光标进行文本 选择(可任意选择) V--进入按行选择模式:上下移动光标进行文本行的 选择(只能选择若干行)
常用命令介绍
剪切命令 d--剪切选定的内容至剪贴板 dd--剪切当前行至剪贴板 复制命令 y--复制选定的内容至剪贴板 yy--复制当前行至剪贴板 粘贴命令 p--将剪切板中的内容粘贴到下一行(或当前光标之前) P--将剪切板中的内容粘贴到上一行(或当前光标之后) 高级用法提示-使用多个剪切板的方法: 在使用剪切或复制命令前先按"<小写字母>,便可将相应的内容剪 切或复制到小写字母对应的剪贴板中,在粘贴命令前用"<小写字 母>便可将指定的剪贴板中的内容粘帖到相应的位置。如 "ad "bdd "cy "dyy "cp "bP
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--未编辑,直接退出,编辑过则提示但不退出
合并行命令
J--将光标所在行的下一行合并到当前行
常用命令介绍
替换(改写)文本命令
r--用随后输入的一个字符替换当前字符 R--用随后输入的字符替换光标位置开始的若干字符 ,每输入一个字符就替换一个原有字符,直到按Esc 键。(相当于进入改写状态) s--用随后输入的一个或多字符替换当前光标位置的 一个字符,若只输入一个则与r命令相同。 S--用新输入的内容替换当前行(不管光标在行中何 处)
常用命令介绍
部分底行命令
: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之间的行
常用命令介绍
查找字符串命令
/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.1.2 vi的工作模式
3. 末行模式(Last line mode)--底行模式 末行模式也称为ex转义模式。在末行模式下, 光标停留在屏幕的最末行,在此接收输入的命令并 执行。末行模式用于执行一些全局性操作,如文件 操作、参数设置、查找与替换、拷贝与粘贴、执行 Shell命令等。 在文本编辑过程中,用户可以控制vi在这三种 工作模式之间进行切换,完成各种编辑工作。三种 模式之间的转换关系如图3-1所示。
常用命令介绍
文本插入命令
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--光标移到文本末行
3.1.1 vi文本编辑器介绍
vi是一个全屏幕文本编辑器,具有文本编辑所 需的所有功能。vi以高效和快捷著称,这是vi 能够在编辑器领域中保持几十年领先地位的原 因。以下介绍vi的几个突出特点
3.1.1 vi文本编辑器介绍
1. 编辑功能强大 vi的编辑功能十分强大,除通常的编辑功能外,vi 还支持一些高级编辑特性,如正则表达式、宏和命令 脚本。利用这些特性可以完成非常复杂的编辑任务, 实现编辑的智能化和自动化。另一方面,vi的功能又 十分专注,它只是一个编辑器,没有其他功能。Linux 系统提供了许多专门用途的工具,如排版、排序、流 过滤、E-mail、编译等软件。vi可以和这些工具软件协 同工作,从而实现几乎所有的文件加工处理任务。用 一些小而精悍、功能专一的工具结合起来完成复杂的 处理功能,这正是Unix的设计哲学。
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。