vi使用教程

vi 的原意是"Visual",它是一个立即反应的编辑程式,也就是说可以立刻看到操作结果。
vi是大多数UNIX系统都支持的全屏文本编辑器。它是由行编辑器ex发展而来的。它也两个版本:view编辑器和vedit编辑器。其中view编辑器对vi设了只读标志,而vedit编辑器对vi做了几个标志设置,同时也简化了vi的使用。 vi有两种基本工作模式,文本输入模式命令模式。文本输入模式即是用来输入文字资料,而命令模式则是用来下达一些编排文件、存档、以及离开vi等等的操作命令。当执行vi后,会先进入命令模式,此时输入的任何字符都视为命令。

进入与退出
要进入vi可以直接在系统提示字符$下键入vi [文件名],然后键入回车。vi可以自动帮我们进入所要编辑的文档或是开启一个新文档。进入vi后屏幕左方会出现波浪符号,凡是列首有该符号的就代表此列目前是空的。
要离开vi可以在命令模式提示符:下键入q。要切换到命令模式下则是用[ESC]键,如果不知道现在是处于什么模式,可以多按几次[ESC],系统会发出哔哔声以确定进入命令模式。

功能
wq
保存文件,退出vi
w
保存文件,但不退出vi
q
退出编辑器
q!
退出编辑器,同时放弃所做的修改
ZZ
保存文件,退出vi
                                                                             

vi编辑器的退出命令

vi输入模式
要如何输入资料呢?有好几个命令可以进入输入模式:
1.添加文本
    a     从光标所在位置后面开始增加资料,光标后的资料随新增资料而向后移动。
    A     从光标所在行的最后面的地方开始增加资料。
2.插入正文
    i     从光标所在位置前面开始插入资料,光标后的资料随新增资料而向后移动。
    I     从光标所在行的第一个非空白字符前面开始插入资料。
3.增添新行
    o     在光标所在行下新增一行并进入输入模式。
    O     在光标所在行上方新增一行并进入输入模式。
实例
    下面来演示一下(以i为例,其中红色字母为光标所在位置):
    ·先按[Ese]键。使vi处于命令模式。
    ·按i键。将vi切换到文本输入模式。
    ·按字符123。这时会发现123出现在m的前面。
此时光标仍停留在m上,vi还处于文本输入模式,直到再按[Ese]才回到命令状态。
如:The vi history
     The vi editor is an interactive text editor that is supported by most of the UNIX operating systems.
到:The vi history
     The vi editor is an interactive text editor that is supported by 123most of the UNIX operating systems.

vi 基本编辑
在配合一般键盘上的功能键,像是方向键、[Insert] 、[Delete] 等等,现在我们应该已经可以利用 vi 来处理文字资料了。当然 vi 还提供其他许多能让文字的处理更方便的用法。
文本删除与修改
何谓编辑?在这里我们认为是文字的增加、修改以及删除,甚至包括文字块的移动、复制等等。这里先介绍 vi 的如何做删除与修改。
注意:在 vi 的原始概念里,输入和编辑是两回事。编辑是在命令模式下操作的,是先利用命令移动光标来定位要进行编辑的地方,然后才下命令做编辑的。

    x         删除光标所在字符
    dd       删除光标所在的行
    r         替换当前光标所在字符
    R         从当前光标的位置开始替换字符,并且使vi进入文本输入模式
    s         删除光标所在字符,并进入输入模式
    S         删除光标所在的行,并进入输入模式
    u         放弃最近的修改
    U         放弃对当前行的所有修改

实例
下面来演示一下(以R为例,其中红色字母为光标所在位置):
    ·按R从当前光标开始替换字符。vi进入文本输入模式。
    ·按字符123。vi编辑器会从当前光标开始用123替换ost。这时vi仍处于文本输入模式。
如:The vi history
      The vi editor is an interactive text editor that is supported  by m123 of the UNIX perating systems.
    ·按[Ese]键可以返回到命令模式。
    ·按U可以恢复对当前行所做的修改。
到:The vi history
     The vi editor is an interactive text editor that is supported  by most of the UNIX perating systems.

在命令模式下移动光标的基本命令是 h, j, k, l 。想来大家现在也应该能猜到只要直接用键盘上的方向键就可以了,而且无论在命令模式或输入模式下都是可以。
当然键盘也有不足之处。有个很好用的命令u可以恢复被删除的资料,而U命令则可以恢复对光标所在行的所有修改。这与某些电脑上的[Undo]按键功能相同。

移动光标

由于许多编辑工作是借用光标来定位的,所以 vi 提供了许多移动光标的方式,下面用几张简表来说明(这些当然也是命令模式下的命令):

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

命令
说明
H
移动到视窗的第一行
M
移动到视窗的中间行
L
移动到视窗的最后行
b
移动到下个字的第一个字母
w
移动到上个字的第一个字母
e
移动到下个字的最后一个字母
^
移动到光标所在列的第一个非空白字符

命令
说明
n-
减号移动到上一行的第一个非空白字符前面加上数字可以指定移动到以上 n 行
n+
加号移动到下一行的第一个非空白字符前面加上数字可以指定移动到以下 n 行
nG
直接用数字 n 加上大写 G 移动到第 n 行

命令
说明

fx

Fx

往右移动到 x 字符上

往左移动到 x 字符上

tx

Tx

往右移动到 x 字符前

往左移动到 x 字符前

;

,

配合 f&t 使用,重复一次

配合 f&t 使用,反方向重复一次

/string

?string

往右移动到有 string 的地方

往左移动到有 string 的地方

n

N

配合 /&? 使用,重复一次

配合 /&? 使用,反方向重复一次


命令
说明
备注

n(

n)

左括号移动到句子的最前面前面加上数字可以指定往前移动 n 个句子

右括号移动到下个句子的最前面前面加上数字可以指定往后移动 n 个句子

句子是以! . ? 三种符号来界定

n{

n}

左括弧移动到段落的最前面前面加上数字可以指定往前移动 n 个段落

右括弧移动到下个段落的最前面前面加上数字可以指定往后移动 n 个段落

段落是以段落间的空白列界定

编辑命令
这些编辑命令非常有弹性,基本上可以说是由命令与范围所构成。例如dw是由删除命令d与范围w所组成的,代表删除一个字d(elete)w(ord)。
        命令列表如下:
        d         删除(delete)
        y         复制(yank)
        p         放置(put)
        c         修改(change)
        范围可以是下列几个:
        e         光标所在位置到该字的最后一个字母
        w         光标所在位置到下个字的第一个字母
        b         光标所在位置到上个字的第一个字母
        $         光标所在位置到该列的最后一个字母
        0         光标所在位置到该列的第一个字母
        )         光标所在位置到下个句子的第一个字母
        (         光标所在位置到该句子的第一个字母
        }         光标所在位置到该段落的最后一个字母
        {         光标所在位置到该段落的第一个字母
这些提供了更多的编辑文字的能力。值得注意的是删除与复制都会将指定范围的内容放到缓存区里,然后就可以用命令p贴到其它地方去,这是vi用来处理区段拷贝与移动的办法。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值