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 />

在 文 件 比 较 大 时 , 在 文 件 中 移 动 也 许 会 比 较 费 力 。 这 个 时 候 , 你 可 以 根 据 自 己 的 需 要 把 暂 时 不 会<br />

访 问 的 文 本 折 叠 起 来 , 既 减 少 了 对 空 间 的 占 用 , 移 动 速 度 也 会 快 很 多 。<br />

vim 提 供 了 多 种 方 法 来 进 行 折 叠 , 既 可 以 手 动 折 叠 , 也 可 以 根 据 缩 进 、 语 法 , 或 使 用 表 达 式 来 进<br />

行 折 叠 。<br />

程 序 文 件 一 般 都 具 有 良 好 的 结 构 , 所 以 根 据 语 法 进 行 折 叠 是 一 个 不 错 的 选 择 。<br />

要 启 用 折 叠 , 首 先 要 使 能 'foldenable' 选 项 , 这 个 选 项 是 局 部 于 窗 口 的 选 项 , 因 此 可 以 为 每 个 窗<br />

口 定 义 不 同 的 折 叠 。<br />

接 下 来 , 设 置 'foldmethod' 选 项 , 对 于 程 序 , 我 们 可 以 选 择 根 据 语 法 高 亮 进 行 折 叠 。 需 注 意 的 ,<br />

要 根 据 语 法 高 亮 进 行 折 叠 , 必 须 打 开 文 件 类 型 检 测 和 语 法 高 亮 功 能 , 请 参 见 我 前 面 的 文 章 。<br />

下 面 是 我 的 vimrc 中 的 设 置 , 它 使 用 了 自 动 命 令 , 如 果 发 现 文 件 类 型 为 c 或 cpp, 就 启 用 折 叠 功<br />

能 , 并 按 语 法 进 行 折 叠 :<br />

autocmd FileType c,cpp setl fdm=syntax | setl fen<br />

注 意 ,vim 的 很 多 命 令 、 选 项 名 都 有 简 写 形 式 , 在 帮 助 手 册 中 可 以 看 到 简 写 形 式 , 也 可 以 按 简 写<br />

形 式 来 help, 例 如 , 要 查 看 'foldmethod' 选 项 的 帮 助 , 可 以 只 输 入 ":help 'fdm'"。<br />

折 叠 后 的 效 果 见 下 图 :<br />

点 击 查 看 大 图<br />

图 中 以 黑 色 背 景 显 示 的 行 就 是 被 折 叠 起 来 的 行 ,vim 会 显 示 这 个 fold 中 被 折 叠 了 多 少 行 , 以 及 起<br />

始 行 的 内 容 。 留 意 一 下 左 下 方 的 "__Tag_List__" 窗 口 , 在 这 个 窗 口 中 也 存 在 着 折 叠 , 我 把 macro,<br />

typedef, variable 几 项 折 叠 起 来 了 , 而 把 function 的 折 叠 打 开 。 从 该 窗 口 最 左 边 的 折 叠 栏<br />

(:help fold-foldcolumn) 也 可 以 看 出 不 同 : 被 折 叠 的 文 本 前 显 示 了 "+", 打 开 的 折 叠 前 显 示 的<br />

是 "|"。<br />

折 叠 的 背 景 色 及 显 示 文 字 等 都 可 以 修 改 , 参 阅 帮 助 手 册 (:help folding)。<br />

下 面 的 命 令 用 来 打 开 和 关 闭 折 叠 :<br />

66

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

Saved successfully!

Ooh no, something went wrong!