`
chengyue2007
  • 浏览: 1488183 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

vi 编辑器的使用回顾

 
阅读更多

一、Unix编辑器概述
编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。

值得庆幸的是,Unix提供了全屏幕的Vi编辑器,这使我们的工作轻松不少。不少DOS用户抱怨Vi编辑器不象DOS下的编辑器如edit那么好用,这是因为Vi考虑到各种用户的需要,没有使用某些通用的编辑键(在各个不同的终端机上他们的定义是不同的,在某些终端机上甚至没有这些键)。而是采用状态切换的方法,但这只是习惯的问题,一旦你熟练的使用上了vi你就会觉得它其实也很好用。虽然 Vi采用了状态切换的方法,但电脑的硬件及操作系统多种多样,某些电脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系统上也一样,几乎各大电脑厂商都有自己的Unix 系统,而 vi 的操作方法也会随之有点出入。这里我们采用 PC 的键盘来说明 vi 的操作,但在具体的环境中还要参考相应的资料,这一点是值得注意的。

二、Vi入门

(一)、进入vi

在系统提示字符(如$、#)下敲入vi <档案名称>,vi 可以自动帮你载入所要编辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。进入 vi 后萤幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。

(二)、两种模式

如上所述,vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理:如输入a,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次 [ESC],系统如发出哔哔声就表示已处于指令模式下了。

付:有指令模式进入输入模式的指令:

新增 (append)

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

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

插入 (insert)   按i 进入编辑模式,按 [esc] 推出编辑模式  ,回到命令模式,如果在命令模式,按“:” 就可以输入推出或者保存的命令,如下,(三)

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

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

开始 (open)

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

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

(三)、退出vi

在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。

其中:wq和:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q退出,

或用:wq或:x命令退出,如果你不想保存改变后的文件,

你就需要用:q!命令,这个命令将不保存文件而直接退出vi。

(四)、基本编辑

配合一般键盘上的功能键,像是方向键、[Insert] 、[Delete] 等等,现在你应该已经可以利用 vi 来编辑文件了。当然 vi 还提供其他许许多多功能让文字的处理更为方便。

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

删除与修改文件的命令:

x: 删除光标所在字符。

dd :删除光标所在的列。

r :修改光标所在字元,r 後接著要修正的字符。

R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。

s: 删除光标所在字元,并进入输入模式。

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

其实呢,在PC上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元,直接按[Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能用,而不是仅仅在 PC 上。
在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键就可以了,而且无论在指令模式或输入模式下都可以。多容易不是。
当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的文字,而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功能相同。
三、附件:vi详细指令表
(一)、基本编辑指令:
新增 (append)

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

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

插入 (insert)

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

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

开始 (open)

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

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

x: 删除光标所在字符。

dd :删除光标所在的列。

r :修改光标所在字元,r 後接著要修正的字符。

R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。

s: 删除光标所在字元,并进入输入模式。

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

(二)、光标移动指令:
由於许多编辑工作是藉由光标来定位,所以 vi 提供许多移动光标的方式,这个我们列
几张简表来说明(这些当然是指令模式下的指令):

指令 说明  功能键
0 移动到光标所在列的最前面 [Home]
$  移动到光标所在列的最後面 [End]
[CTRL][d] 向下半页  [PageDown]
[CTRL][f] 向下一页
[CTRL][u] 向上半页
[CTRL][b] 向上一页 [PageUp]

指令 说明
H 移动到视窗的第一列
M 移动到视窗的中间列
L 移动到视窗的最後列
b 移动到下个字的第一个字母
w 移缴细鲎值牡谝桓鲎帜?nbsp; 
e 移动到下个字的最後一个字母
^ 移动到光标所在列的第一个非空白字元

指令 说明 
n- 减号移动到上一列的第一个非空白字元前面加上数字可以指定移动到以上 n 列
n+ 加号移动到下一列的第一个非空白字元前面加上数字可以指定移动到以下 n 列
nG 直接用数字 n 加上大写 G 移动到第 n 列
指令 说明
fx
往右移动到 x 字元上
Fx 往左移动到 x 字元上 
tx 往右移动到 x 字元前
Tx 往左移动到 x 字元前
; 配合 f&t 使用,重复一次
, 配合 f&t 使用,反方向重复一次
/string 往右移动到有 string 的地方
?string 往左移动到有 string 的地方
n  配合 /&? 使用,重复一次
N  配合 /&? 使用,反方向重复一次

指令 说明 备注
n(
左括号移动到句子的最前面句子是以前面加上数字可以指定往前移动 n 个句子 ! . ? 三种符号来界定
n) 右括号移动到下个句子的最前面前面加上数字可以指定往後移动 n 个句子 ! . ? 三种符号来界定
n{  左括弧移动到段落的最前面 段落是以段落间的空白列界定
n} 前面加上数字可以指定往前移动 n 个段落右括弧移动到下个段落的最前面前面加上数字可以指定往後移动 n 个段落 段落是以段落间的空白列界定


(三)、更多的编辑指令
这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 怯缮境噶?nbsp;d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。
指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几个:
e 光晁谖恢玫礁米值淖钺嵋桓鲎帜?br> w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最後一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最後一个字母
{ 光标所在位置到该段落的第一个字母
说实在的,组合这些指令来编辑文件有一点点艺术气息。不管怎麽样,它们提供更多编辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然後就可以用指令 p 贴到其它地方去,这是 vi 用来处理区段拷贝与搬移的办法。
某些 vi 版本,例如 Linux 所用的 elvis 可以大幅简化这一坨指令。如果稍微观察一下这些编辑指令就会发现问题其实是定范围的方式有点杂,实际上只有四个指令罢了。指令 v 非常好用,只要按下 v 键,光标所在的位置就会反白,然後就可以移动光标来设定范围,接著再直接下指令进行编辑即可。对於整列操作, vi 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令 dd 就是其中一个;cc 可以修改整列文字;而 yy 则是复制整列文字;指令 D 则可以删除光标到该列结束为止所有的文字。
(四)、文件操作指令
文件操作指令多以 : 开头,这跟编辑指令有点区别。
:q 结束编辑(quit)
:q! 不存档而要放弃编辑过的文件。
:w 保存文件(write)其後可加所要存档的档名。
:wq 即存档後离开。
zz 功能与 :wq 相同。
:x 与:wq相同

分享到:
评论

相关推荐

    VI编辑器使用说明(PDF日文版)-2

    #### 一、VI编辑器基础命令回顾 根据文档描述,在上一期(即第一期)中已经介绍了VI编辑器的一些基础命令。这些命令旨在帮助用户形成条件反射式的操作习惯,使得在实际使用过程中能够不假思索地执行。 #### 二、...

    VI编辑器详解

    因此,学会使用VI编辑器对系统管理和日常维护至关重要。 **VI与VIM的关系**: - **VI**: 是一款功能强大的纯文本编辑器,几乎在所有类Unix系统中都能找到。 - **VIM (Vi IMproved)**: 是VI的一个增强版本,提供了...

    Linux的vi编译器设置

    在深入探讨如何优化Linux下的vi编辑器以提升编程体验之前,我们先来简要回顾一下vi编辑器的历史及其在Linux环境中的重要性。vi(visual editor)是Unix系统中最古老且最广泛使用的文本编辑器之一,它诞生于1976年,...

    Linux基础课件第三章文本编辑器.ppt

    VI编辑器的启动和退出方式多样,比如使用`vi`命令直接进入编辑环境,或者使用`:q!`放弃对文件的修改并退出。文件操作包括打开新文件、读取文件、保存文件和另存为。光标移动可以通过键盘快捷键实现,如`h`, `j`, `k`...

    IBM vi 入门 巧表单方法

    这篇免费、dW 独有的教程阐述了如何使用功能强大的可视化编辑器 vi。它使用一种快速“巧表单”方法,目的是使您不用花费大量时间,就可以精通 vi。您将会很快学会在 vi 中移动光标、编辑文本、使用插入模式、拷贝...

    Learning the vi and Vim Editors, Seventh Edition

    - **启动vi时的选项**(第48页):介绍了在启动vi编辑器时可以使用的各种命令行选项。 - **利用缓冲区**(第51页):解释了缓冲区的概念及其用途,以及如何在多个缓冲区之间切换。 - **标记位置**(第52页):介绍了...

    linux基础知识点大回顾

    - 使用`Q`命令退出Vi编辑器。 - 使用`D`命令删除`.swp`文件。 - 或者使用`vi -r 文件名`来恢复未保存的内容。 恢复未保存内容的具体步骤包括: - 方法一:使用`R`命令恢复文件,然后删除`.f1.swp`文件。 - ...

    精通Linux命令行:《Linux下编程工具(Linux命令、vi)》教程全解析

    本次分享的资源《Linux下编程工具(Linux命令、vi)》PDF,将带您深入探索Linux命令行的精髓,以及高效文本编辑器vi的使用技巧。 【资源亮点】 Linux命令全解:从基础到高级,系统性地介绍了Linux常用命令,包括文件...

    鸟哥的_Linux_私房菜第10章-vim_程序编辑器

    在 Linux 系统中,掌握文本编辑器的使用至关重要,尤其是对于系统管理员而言。在众多文本编辑器中,vi(以及其增强版本 vim)因其普遍性和强大的功能成为首选。以下几点阐述了学习 vim 的必要性: - **兼容性广泛**...

    Labview应用技术 子VI(教案).doc

    2. **讨论+实操**:学生分组讨论VI的基本构成,如前面板和程序框图,以及如何在编辑器中设置连线端子。 3. **实操训练**:学生在教师的指导下,动手创建和编辑子VI,实践两种设计方法。 4. **引导+提示**:教师提供...

    C++基础(用户权限、VI操作、Linux服务器搭建)

    在IT领域,C++是一种强大的面向...总的来说,这个教程涵盖了C++语言基础、Linux用户管理、文件权限控制和VI编辑器的使用,这些都是IT专业人士必备的技能。通过深入学习和实践,可以提升在Linux环境下的开发和运维能力。

    vi中文手册vim_user_manual_603.0.pdf

    #### 一、Vi/Vim编辑器的本质与学习方法 **Vi/Vim的本质:** - **技能而非知识:** Vim的使用更侧重于技能的掌握,而非纯理论知识的学习。 - **实践重于理论:** Vim强调通过实践来学习,即“不动手不读书”。 **...

    有效编程的7个习惯

    本篇文章将根据Bram Moolenaar在Google的一次演讲内容,探讨如何通过采用特定的习惯来提高使用vi(vim)编辑器的效率。vi(vim)作为一款强大的文本编辑器,在开发者社区中有着广泛的用户基础。 #### 二、问题的...

    虚拟仪器课程LabVIEW实验一的子VI以及实验报告.zip

    6. **子VI**:将常用或复杂的功能封装成一个独立的VI,可以重复使用。实验一中的子VI可能是预先编写好的特定功能模块。 实验报告通常会包含以下几个部分: 1. **实验目的**:明确实验要达成的目标,例如掌握基本的...

    03_Linux常用命令回顾.zip

    Linux 安装 常用命令 VI编辑器的使用 远程登录 主机名的设置 IP的设置 防火墙的设置 用户和组账户管理 文件权限管理 RPM软件包管理 软件的安装 Jdk,tomcat, eclipse

    Linux下的C编程基础.pdf

    - **Vi编辑器的基本操作**:了解Vi编辑器的启动方式、基本命令集(如移动光标、删除文本、保存退出等)、模式切换方法等基础知识。 - **Emacs编辑器的基本操作**:掌握Emacs编辑器的基本命令,学会如何打开文件、...

    Linux 下的C 编程基础.pdf

    Vi (Visual editor) 是 Linux 中广泛使用的全屏幕文本编辑器。除了 Vi 之外,Linux 还提供了其他的编辑器,如 Emacs,它们各自有着不同的使用场景和偏好用户群体。 Vi 编辑器具有以下特点: - **模式切换**:Vi ...

Global site tag (gtag.js) - Google Analytics