三. Vi 的操作模式:
Vi 有二种主要的操作模式, ESC 键为单向的切换键(由本文输入模式回到编辑命令模式)
编辑命令模式 : 要 vi 做一些特定目的的动作. 如插入,附加,取代,修改,删除,移动光标,搜寻等等. 若是存盘等动作, 则需在命令列中下达, 欲切换至命令列, 需先按 :
本文输入模式 : 在此模式下, 任何字符, 皆被视为输入的数据.
一开始进入 Vi 之后, 即进入编辑命令模式, 你输入的每一个字符, 皆被预视为一个指令. 有效的指令会被接受, 若是无效的指令, 会产生 beep beep 声, 以示警告.
若想做输入的动作, 必须切换为本文输入模式, 切换的方法, 只要单按一个特殊意义的字符键即可, 如下所示:
按 i 或 I 插入状态
按 a 或 A 附加状态
按 R 取代状态R 会进行连续字符取代
按 s 或 S 删除一个字符;删除光标所在那一列
按 cw, c2b, c$, c0 修改状态
按 o 或 O 新增空白列
你不必一下子全用上, 只要会 i, a, o 这个三个模式即可胜任愉快, 因为大部份时候, 你也只用这三个.
OK, 现在你可以试着在本文输入模式下, 键入一些资料看看. 然后, 按 ESC 切换回编辑命令模式.
四. 移动光标:
Vi 为了适用于各种不同的终端机模式, 因此以字键的方式来操控光标.
k j h l 上 下 左 右
Enter 换列
w b 往前一个 word ; 倒退一个 word
0 $ 至该列开头 ; 至该列尾端
+ - 往下一列; 往上一列
请记住一个要诀:
在 Vi 中, 大部份的命令都可以在其前面加上数字, 该数字表示重复该命令的次数.
例如: 8l 表示往右移动 8 个字符, 3w 表示往前移动三个 word, 2b 表示倒退 2 个 word
注: word 的定义, 连续英数字元形成一个 word, 而其它特殊符号则每一个字符便是一个 word(除非连续特殊字符), 例如: --classify 中含有 2 个 word, 一个是 -- ; 一个是 classify
而 -x, 则有 3 个 word.
在特殊的终端机模式下, 方向键也是可以使用的. 如 linux 或 vt100.
其实大部份时候, 你仍可以保有使用方向键的习惯. 但大概只有 local 下才能使用 PgUp , PgDn, End, Home 等键喔!
不过, 若你所使用的终端机模式不支持方向键, 那么上表中的按键, 就相当重要了.