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 中较常用的操作命令。
进入输入输出的方法 | |
命令 | 作用 |
<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 |
<?abc> | 向后查询abc |
<n> | 向前继续查询 |
<N> | 向后继续查询 |
拷贝与粘贴 | |
命令 | 作用 |
</yw> | 将光标所在单词拷入剪贴板 |
<y$> | 将光标至行尾的字符拷入剪贴板 |
<Y> | 同<y$> |
<yy> | 将当前行拷入剪贴板 |
<p> | 将剪贴板中的内容粘贴在光标后 |
<P> | 将剪贴板中的内容粘贴在光标前 |
文件保存及退出vi | |
命令 | 作用 |
<:q> | 不包存退出 |
<:q!> | 不保存强制性退出 |
<:w> | 保存编辑 |
<:w filename> | 存入文件 filename 中 |
<:w! filename> | 强制性存入文件 filename 中 |
<:wq> | 保存退出 |
<:x> | 同 <:wq> |
<ZZ> | 同 <:wq> |