使 用 会 话 (session) 和 viminfo 时 , 或 者 你 的 项 目 有 多 个 不 同 版 本 ( 位 于 不 同 的 目 录 ), 而 你 想 始 终 使 用 一 个 session 文 件 时 , 这 个 选 项 比 较 有 用 : 你 只 需 要 把 session 文 件 拷 贝 到 不 同 的 目 录 , 然 后 使 用 就 可 以 了 。 设 置 此 选 项 后 ,session 文 件 中 保 存 的 是 文 件 的 相 对 路 径 , 而 不 是 绝 对 路 径 。 我 们 在 上 面 使 用 :mksession 命 令 创 建 了 会 话 文 件 , 那 么 怎 么 使 用 会 话 文 件 恢 复 编 辑 环 境 呢 ? 很 简 单 , 你 只 需 要 使 用 :source session-file 来 导 入 会 话 文 件 。 因 为 会 话 文 件 是 一 个 脚 本 , 里 面 保 存 的 是 Ex 命 令 , 所 以 "source" 命 令 只 是 把 会 话 文 件 中 的 Ex 命 令 执 行 一 遍 。 [viminfo] 使 用 :wviminfo [file] 命 令 , 可 以 手 动 创 建 一 个 viminfo 文 件 。 其 实 , 在 vim 退 出 时 , 每 次 都 会 保 存 一 个 .viminfo 文 件 在 用 户 的 主 目 录 。 我 们 使 用 :wviminfo 命 令 则 是 手 动 创 建 一 个 viminfo 文 件 , 因 为 缺 省 的 .viminfo 文 件 会 在 每 次 退 出 vim 时 自 动 更 新 , 谁 知 道 你 在 关 闭 当 前 软 件 项 目 后 , 又 使 用 vim 做 过 些 什 么 呢 ? 这 样 的 话 ,.viminfo 中 的 信 息 , 也 许 就 与 你 所 进 行 的 软 件 项 目 无 关 了 。 还 是 手 动 保 存 一 个 保 险 。 ":wviminfo" 命 令 保 存 哪 些 内 容 , 以 及 保 存 的 数 量 , 由 'viminfo' 选 项 决 定 , 这 个 选 项 的 值 在 windows 上 和 在 linux 上 的 缺 省 值 不 同 , 具 体 含 义 参 阅 手 册 。 要 读 入 你 所 保 存 的 viminfo 文 件 , 使 用 :rviminfo [file] 命 令 。 现 在 , 回 到 我 们 的 例 子 , 依 旧 是 上 篇 文 章 中 的 抓 图 , 先 看 一 下 我 们 当 前 目 录 , 执 行 :pwd, 显 示 "/ home/easwy/src/vim70", 接 下 来 , 执 行 下 面 的 命 令 : :cd src :set sessionoptions-=curdir :set sessionoptions+=sesdir :mksession vim70.vim :wviminfo vim70.viminfo :qa " 切 换 到 /home/easwy/src/vim70/src 目 录 " 在 session option 中 去 掉 curdir " 在 session option 中 加 入 sesdir " 创 建 一 个 会 话 文 件 " 创 建 一 个 viminfo 文 件 " 退 出 vim 退 出 vim 后 , 在 命 令 行 下 执 行 gvim &, 再 次 进 入 vim, 这 时 看 到 的 是 一 个 空 白 窗 口 。 然 后 执 行 下 面 的 命 令 : :source ~/src/vim70/src/vim70.vim ' 载 入 会 话 文 件 :rviminfo vim70.viminfo ' 读 入 viminfo 文 件 太 棒 了 , 又 恢 复 到 昨 天 退 出 时 的 状 态 了 ! 继 续 工 作 ~~~~ 不 过 , 每 次 都 要 手 工 修 改 'sessionoptions' 或 'viminfo' 吗 ? 多 麻 烦 啊 ...... 别 着 急 , 现 在 是 时 候 介 绍 vimrc 了 , 请 移 步 下 一 章 : vimrc 初 步 。 [ 参 考 文 档 ] 1.vim 手 册 2.vim 中 文 手 册
第 4 章 vimrc 初 步