25.06.2015 Views

vim使用进阶

vim使用进阶

vim使用进阶

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

指 随 意 动 , 移 动 如 飞 ( 一 )<br />

命 令 "G" 前 可 以 加 上 数 字 , 在 这 里 , 数 字 的 含 义 并 不 是 倍 数 , 而 是 你 打 算 跳 转 的 行 号 。 例 如 , 你<br />

想 跳 转 到 文 件 的 第 1234 行 , 只 需 输 入 "1234G"。<br />

你 还 可 以 按 百 分 比 来 跳 转 , 例 如 , 你 想 跳 到 文 件 的 正 中 间 , 输 入 "50%"; 如 果 想 跳 到 75% 处 , 输<br />

入 "75%"。 注 意 , 你 必 须 先 输 入 一 个 数 字 , 然 后 输 入 "%"。 如 果 直 接 输 入 "%", 那 含 义 就 完 全 不 同<br />

了 。":help N%" 阅 读 更 多 细 节 。<br />

在 文 件 中 移 动 , 你 可 能 会 迷 失 自 己 的 位 置 , 这 时 使 用 "CTRL-G" 命 令 , 查 看 一 下 自 己 位 置 。 这 个 命<br />

令 会 显 示 出 光 标 的 位 置 及 其 它 信 息 。 为 了 避 免 迷 失 , 你 可 以 打 开 行 号 显 示 ; 使 用 ":set<br />

number" 命 令 后 , 会 在 每 一 行 前 显 示 出 行 号 , 可 以 更 方 便 的 定 位 的 跳 转 (:help 'number')。<br />

[ 移 动 到 指 定 字 符 ]<br />

上 面 的 命 令 都 是 行 间 移 动 ( 除 h, l 外 ), 也 就 是 从 当 前 行 移 动 到 另 外 一 行 。 如 果 我 们 想 在 当 前 行 内<br />

快 速 移 动 , 可 以 使 用 f, t, F, T 命 令 。<br />

"f" 命 令 移 动 到 光 标 右 边 的 指 定 字 符 上 , 例 如 ,"fx", 会 把 移 动 到 光 标 右 边 的 第 一 个 'x' 字 符<br />

上 。"F" 命 令 则 反 方 向 查 找 , 也 就 是 移 动 到 光 标 左 边 的 指 定 字 符 上 。<br />

"t" 命 令 和 "f" 命 令 的 区 别 在 于 , 它 移 动 到 光 标 右 边 的 指 定 字 符 之 前 。 例 如 ,"tx" 会 移 动 到 光 标 右<br />

边 第 一 个 'x' 字 符 的 前 面 。"T" 命 令 是 "t" 命 令 的 反 向 版 本 , 它 移 动 到 光 标 右 边 的 指 定 字 符 之 后 。<br />

这 四 个 命 令 只 在 当 前 行 中 移 动 光 标 , 光 标 不 会 跨 越 回 车 换 行 符 。<br />

可 以 在 命 令 前 面 使 用 数 字 , 表 示 倍 数 。 例 如 ,"3fx" 表 示 移 动 到 光 标 右 边 的 第 3 个 'x' 字 符 上 。<br />

";" 命 令 重 复 前 一 次 输 入 的 f, t, F, T 命 令 , 而 "," 命 令 会 反 方 向 重 复 前 一 次 输 入 的 f, t, F, T 命<br />

令 。 这 两 个 命 令 前 也 可 以 使 用 数 字 来 表 示 倍 数 。<br />

[ 行 首 / 行 尾 ]<br />

在 vim 中 , 移 动 到 行 首 的 命 令 非 常 简 单 , 就 是 "0", 这 个 是 数 字 0, 而 不 是 大 写 字 母 O。 移 动 到 行 尾<br />

的 命 令 是 "$"。<br />

另 外 还 有 一 个 命 令 "^", 用 它 可 以 移 动 到 行 首 的 第 一 个 非 空 白 字 符 。<br />

在 正 则 表 达 式 中 我 们 会 看 到 ,"^" 字 符 代 表 行 首 , 而 "$" 字 符 代 表 行 尾 。 可 见 ,vi/vim 的 按 键 的 安<br />

排 , 的 确 是 别 具 匠 心 的 。<br />

[ 按 单 词 移 动 ]<br />

我 们 知 道 , 英 文 文 档 的 主 体 是 单 词 , 通 常 用 空 白 字 符 ( 包 括 空 格 、 制 表 符 和 回 车 换 行 符 ) 来 分 隔 单<br />

词 。vim 中 提 供 了 许 多 命 令 来 按 单 词 移 动 。<br />

要 根 据 单 词 来 移 动 , 首 先 要 把 文 本 分 隔 为 一 个 个 独 立 的 单 词 。vim 在 对 单 词 进 行 分 隔 时 , 会<br />

把 'iskeyword' 选 项 中 的 字 符 做 为 单 词 的 组 成 字 符 。 也 就 是 说 , 一 个 单 词 (word) 由 'iskeyword' 选<br />

项 中 定 义 的 字 符 构 成 , 它 前 面 、 后 面 的 字 符 不 在 'iskeyword' 选 项 定 义 的 字 符 中 。 例 如 , 如 果 我<br />

们 把 'iskeyword' 选 项 设 置 为 "a-z,A-Z,48-57,_", 那 么 "FooBar_123" 被 做 为 一 个 单 词 ,<br />

而 "FooBar-123" 被 做 为 三 个 单 词 :"FooBar", "-" 和 "123"。"a-z,A-Z,48-57,_" 中 的 48-57 表 示<br />

ASCII 码 表 中 的 数 字 0-9。<br />

vim 中 , 移 动 光 标 到 下 一 个 单 词 的 词 首 , 使 用 命 令 "w", 移 动 光 标 到 上 一 个 单 词 的 词 首 , 使 用 命<br />

令 "b"; 移 动 光 标 到 下 一 个 单 词 的 结 尾 , 用 命 令 "e", 移 动 光 标 到 上 一 个 单 词 的 结 尾 , 使 用 命<br />

令 "ge"。<br />

上 面 这 些 命 令 都 使 用 'iskeyword' 选 项 中 的 字 符 来 确 定 单 词 的 分 界 , 还 有 几 个 命 令 , 只 把 空 白 字<br />

符 当 做 " 单 词 " 的 分 界 。 当 然 , 这 里 说 的 " 单 词 " 已 经 不 是 传 统 意 义 上 的 单 词 了 , 而 是 由 非 空 白 字 符<br />

60

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!