2020年3月3日 星期二

vi插入文本

为了在编辑缓冲区中插入文本,必须键入命令从命令模式切换到输入模式。当结束文本插入之后,还要按<Esc>键离开输入模式返回命令模式(记住:挡在命令模式中按<Esc>键时,vi会发出嘀嘀声。如果不确定处于哪一种模式中,可以按<Esc>键两次。当听见嘀嘀声时,就意味着处于命令模式中了)。
有12种命令可以改变到输入模式。其中一半用于输入新数据,另一半用于替换已有文本。当然,您可能会问,只是为了改变到输入模式,为什么需要如此众多的命令呢?答案是每条命令在不同的位置打开编辑缓冲区。因此,当希望插入数据时,可以选择最适合当前情形的命令进行插入。下面就是这些命令:

i 改变到输入模式: 在当前光标位置前插入数据

改变到输入模式: 在当前光标位置后插入数据

I 改变到输入模式: 在当前行开头处插入数据

改变到输入模式: 在当前行末尾处插入数据

o 改变到输入模式: 在当前行下面插入一行

改变到输入模式: 在当前行上面插入一行

为了说明这些命令的作用,假设您正在编辑一篇高级古典音乐课程的学期论文。您正在写著名的歌词,当前行正好是:

For a dime you can see Kankakee or Paree

现在光标位于字母“K”之下,并且处于命令模式中。如果键入i,将切换到输入模式。在键入时,数据将插在字母“K”之前,右边的字母自动依次右移。例如加入您键入:

iAAA<Esc>

(按下<Esc>键后返回到命令模式)

那么当前行看起来就会像这样:

For a dime you can see AAAKankakee or Paree
现在,假设a键切换到输入模式。在这种情况下,数据将插入到“K”之后。因此,假设你从原始行开始,键入了下述内容:

aBBB<Esc>

那么当前行看起来会像这样:

For a dime you can see KBBBankakee or Paree
提示:
要记住i命令和a命令之间的区别,可以这样想:i=insert(插入), a=append(追加)。
通过使用I(大写字母“I”)和A(大写字母“A”)命令,可以分别在当前行的开头或末尾插入数据。例如,假设以原始行开始,并键入:

ICCC<Esc>

那么当前行看起来就像这样:

CCCFor a dime you can see Kankakee or Paree

如果当前行使用空格或者制表符缩进了,那么vi也会聪明的考虑到这一点,在缩进位置之后开始插入数据。

现在,假设仍以原始行开始,并键入:

ADDD<Esc>

所键入的数据被追加在这一行的末尾,此时当前行看起来就像这样:

For a dime you can see Kankakee or PareeDDD

最后,为了在当下行下面插入数据,可以使用o(小写字母“o”) 命令。为了在当前行上面插入数据,可以使用大写字母O(大写字母o)命令。不管哪一种情况,vi都会打开一个新行。
提示:
要记住oO命令之间的区别。可以依赖下述两项:

第一,字母“o”代表“open,打开“。

第二,将命令名称想象成一个充满氨气的气球。大一点的气球,即O,浮得高,因此它在当前行的上面插入一行,而小一点的气球,即o,浮得低,因此在当前行的下面插入一行。

沒有留言:

張貼留言