Vi 简 介

---- vi 做为Linux 系统中一种编辑器,它的使用方法和界面与 Unix 平台十分相似。在 Linux 中有很多功能强大,界面友好的编辑器,但是vi 还是值得你学习它的使用方法。初步接触 VI,你觉得它的界面不太友好,不容易掌握,可是一旦你掌握了vi 的命令,你可以感觉到它强大的功能与高效。而且vi 相对来说较小,无论你使用任何 Linux系统,你总是可以使用vi的。在很多系统中,可能只有 vi 供你选择。--

---- 进 入 与 离 开

---- 要 进 入 vi 可 以 直 接 在 系 统 提 示 字 符 下 键 入 vi < 文 件 名 称 >,vi 可 以 自 动 帮 你 载 入 所 要 编 辑 的 文 件 或 是 开 启 一 个 新 文 件。 进 入 vi 後 屏 幕 左 方 会 出 现 波 浪 符 号, 凡 是 列 首 有 该 符 号 就 代 表 此 列 目 前 是 空 的。 要 离 开 vi 可 以 在 指 令 模 式 下 键 入 :q, :wq 指 令 则 是 存 档 後 再 离 开( 注 意 冒 号)。 要 切 换 到 指 令 模 式 下 则 是 用 [ESC] 键, 如 果 不 晓 得 现 在 是 处 於 什 麽 模 式, 可 以 多 按 几 次 [ESC], 系 统 会 发 出 哔 哔 声 以 确 定 进 入 指 令 模 式。

---- Vi 输 入 模 式

---- 如 何 输 入 资 料 呢 ? 有 好 几 个 指 令 可 以 进 入 输 入 模 式:

新增 (append)
---- a 从 光 标 所 在 位 置 後 面 开 始 新 增 资 料, 光 标 後 的 资 料 随 新 增 资 料 向 後 移 动。
---- A 从 光 标 所 在 列 最 後 面 的 地 方 开 始 新 增 资 料。

插 入 (insert)
---- i 从 光 标 所 在 位 置 前 面 开 始 插 入 资 料, 光 标 後 的 资 料 随 新 增 资 料 向 後 移 动。
---- I 从 光 标列 的 第 一 个 非 空 白 字 符 前 面 开 始 插 入 资 料。

开 始 (open)
---- o 在 光 标 所 在 列 下 新 增 一 列 并 进 入 输 入 模 式。
---- O 在 光 标 所 在 列 上 方 新 增 一 列 并 进 入 输 入 模 式。

---- - 删 除 与 修 改

---- 何 谓 编 辑 ? 在 这 里 我 们 认 为 是 文 字 的 新 增 修 改 以 及 删 除, 甚 至 包 括 文 字 区 块 的 搬 移、 复 制 等 等。 这 里 先 介 绍 vi 的 如 何 做 删 除 与 修 改。( 注 意: 在 vi 的 原 始 观 念 里, 输 入 跟 编 辑 是 两 码 子 事。 编 辑 是 在 指 令 模 式 下 操 作 的, 先 利 用 指 令 移 动 光 标 来 定 位 要 进 行 编 辑 的 地 方, 然 後 才 下 指 令 做 编 辑。)
---- x 删 除 光 标 所 在 字 符。
---- dd 删 除 光 标 所 在 的 列。
---- r 修 改 光 标 所 在 字 符,r 後 接 著 要 修 正 的 字 符。
---- R 进 入 取 代 状 态, 新 增 资 料 会 覆 盖 原 先 资 料, 直 到 按 [ESC] 回 到 指 令 模 式 下 为 止。
---- s 删 除 光 标 所 在 字 符, 并 进 入 输 入 模 式。
---- S 删 除 光 标 所 在 的 列, 并 进 入 输 入 模 式。

----
这里列出 vi 中较常用的操作命令。

  1. 输入模式命令
  2. 输入模式命令光标移动
  3. 输入模式命令删除操作
  4. 改变与替换
  5. 查询命令
  6. 拷贝与粘贴
  7. 文件保存及退出vi

 


输入模式命令

进入输入输出的方法

命令 作用
<a> 在光标后输入文本
<A> 在当前行末尾输入文本
<i> 在光标前输入文本
<I> 在当前行开始输入文本
<o> 在当前行后输入新一行
<O> 在当前行前输入新一行

光标移动命令

光标移动

命令 作用
<b> 移动到当前单词的开始
<e> 移动到当前单词的结尾
<w> 向前移动一个单词
<h> 向前移动一个字符
<j> 向上移动一行
<k> 向下移动一行
<l> 向后移动一个字符

删除操作命令

删除操作

命令 作用
<x> 删除光标所在的字符
<dw> 删除光标所在的单词
<d$> 删除光标至行尾的所有字符
<D> 同<d$>
<dd> 删除当前行

  可在删除命令前加上数字,如<5x>表示删除5行。
范围可以是下列几个:

改变与替换操作命令

改变与替换操作

命令 作用
<r> 替换光标所在的字符
<R> 替换字符序列
<cw> 替换一个单词
<ce> 同<cw>
<cb> 替换光标所在的前一字符
<c$> 替换自光标位置至行尾的所有字符
<C> 同<c$>
<cc> 替换当前行

查询命令

查询

命令 作用
</abc> 向后查询abc,往右移动到有 string 的地方
<?abc> 向前查询abc,往左移动到有 string 的地方
<n> 向前继续查询,按一下重复一次
<N> 向后继续查询,按一下反方向重复一次
指令 说明 备注
n( 左括号移动到句子的最前面,前面加上数字可以指定往前移动 n 个句子 句子是以 ! . ? 三种符号来界定
n) 右括号移动到下个句子的最前面,前面加上数字可以指定往后移动 n 个句子
n{ 左括弧移动到段落的最前面 ,前面加上数字可以指定往前移动 n 个段落 段落是以,段落间的空白列界定
n} 右括弧移动到下个段落的最前面,前面加上数字可以指定往后移动 n 个段落
不要尝试背诵这些指令,否则后果自行负责。它们看起来又多又杂乱,事实上这是文字 叙述本身的障碍。再强调一次,实际去使用它只要几次就可以不经大脑直接下达这些奇 奇怪怪的指令,远比死记活背搞得模模糊糊强多了。(注:若真的不经大脑而误删资料 与我无关。另,此段为废话。)

拷贝与粘贴命令

拷贝与粘贴

命令 作用
</yw> 将光标所在单词拷入剪贴板
<y$> 将光标至行尾的字符拷入剪贴板
<Y> 同<y$>
<yy> 将当前行拷入剪贴板
<p> 将剪贴板中的内容粘贴在光标后
<P> 将剪贴板中的内容粘贴在光标前
进阶编辑指令 这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除指 令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。 指令列表如下: d 删除(delete) y 复制(yank) p 放置(put) c 修改(change)

文件保存及退出vi命令

文件保存及退出vi

命令 作用
<:q> 不包存退出
<:q!> 不保存强制性退出
<:w> 保存编辑
<:w filename> 存入文件 filename 中
<:w! filename> 强制性存入文件 filename 中
<:wq> 保存退出
<:x> 同 <:wq>
<ZZ> 同 <:wq>

虎翼网门户通主机大赠送