保 存 项 目 相 关 配 置 vim 打 开 了 ~/src/vim70/runtime/autoload/netrw.vim 文 件 。 用 这 种 方 法 打 开 文 件 真 是 太 方 便 了 , 你 不 用 输 入 文 件 的 路 径 ,vim 会 自 动 在 path 选 项 定 义 的 路 径 中 搜 索 。 不 过 "find" 命 令 也 有 缺 陷 , 如 果 你 只 记 得 文 件 名 的 一 部 分 , 那 么 就 没 有 办 法 用 find 命 令 打 开 这 个 文 件 了 。 而 且 find 命 令 也 不 允 许 使 用 正 则 表 达 式 。 没 关 系 , 我 们 还 有 更 好 的 方 法 来 打 开 文 件 , 我 将 在 Lookupfile 插 件 中 介 绍 这 些 方 法 。 path 选 项 介 绍 完 了 , 我 们 进 入 正 题 , 如 何 把 本 项 目 相 关 的 配 置 保 存 起 来 , 下 次 打 开 本 项 目 时 自 动 恢 复 这 些 配 置 呢 ? 我 们 有 两 种 方 法 做 到 这 一 点 。 [ 方 法 1] 我 们 在 ~/src/vim70/ 目 录 下 建 立 一 个 文 件 , 假 定 文 件 名 为 workspace.vim, 文 件 内 容 为 : "set project path set path+=~/src/vim70/** 这 个 文 件 中 保 存 了 项 目 相 关 的 信 息 , 例 如 选 项 值 , 键 映 射 , 函 数 定 义 , 自 动 命 令 , 等 等 。 我 们 的 例 子 中 只 定 义 的 path 选 项 , 我 们 没 有 使 用 "set path=..." 语 句 , 在 vim 手 册 中 建 议 使 用 "set path +=..." 和 "set path-=..." 格 式 。 接 下 来 , 在 你 的 vimrc 文 件 中 加 入 下 面 的 语 句 : " execute project related configuration in current directory if filereadable("workspace.vim") source workspace.vim endif 以 后 , 每 次 你 在 ~/src/vim70/ 目 录 中 启 动 vim 时 ,vim 都 会 自 动 载 入 workspace.vim, 恢 复 项 目 的 配 置 信 息 。 [ 方 法 2] 还 记 得 本 系 列 文 章 的 第 二 篇 使 用 会 话 (session) 和 viminfo 吗 ? 那 篇 文 章 中 , 我 们 介 绍 了 使 用 session 文 件 和 viminfo 保 存 项 目 环 境 的 方 法 。 如 果 你 使 用 了 会 话 文 件 , 那 么 选 项 值 , 键 映 射 , 和 其 它 很 多 信 息 都 已 经 保 存 了 。 但 会 话 的 功 能 毕 竟 有 限 , 不 能 把 项 目 相 关 的 配 置 全 部 保 存 下 来 , 怎 么 办 呢 ? vim 的 作 者 已 经 想 到 了 这 个 问 题 , 并 提 供 了 解 决 办 法 。 在 vim 载 入 会 话 文 件 的 最 后 一 步 , 它 会 查 找 一 个 额 外 的 文 件 并 执 行 其 中 的 ex 命 令 。 查 找 的 规 则 是 , 把 会 话 文 件 名 的 后 缀 去 掉 , 然 后 在 后 面 加 上 "x.vim",。 假 设 你 的 会 话 文 件 名 为 example.session,vim 就 会 查 找 是 否 有 examplex.vim, 如 果 找 到 , 就 会 执 行 此 文 件 中 的 ex 命 令 。 好 了 , 我 们 先 创 建 我 们 的 会 话 文 件 : :cd ~/src/vim70 :set sessionoptions-=curdir :set sessionoptions+=sesdir :mksession vim70s.vim ' 在 session option 中 去 掉 curdir ' 在 session option 中 加 入 sesdir ' 创 建 一 个 会 话 文 件 然 后 再 编 辑 一 个 名 为 ~/src/vim70/vim70sx.vim 的 文 件 , 文 件 的 内 容 为 ( 当 然 , 你 可 以 在 这 个 文 件 中 加 入 更 多 内 容 ): 15
保 存 项 目 相 关 配 置 "set project path set path+=~/src/vim70/** 退 出 vim 后 , 在 命 令 行 下 执 行 "gvim &", 再 次 进 入 vim, 这 时 看 到 的 是 一 个 空 白 窗 口 。 然 后 执 行 下 面 的 命 令 : :source ~/src/vim70/vim70s.vim ' 载 入 会 话 文 件 太 棒 了 ! 原 来 的 会 话 环 境 已 经 恢 复 , 并 且 项 目 相 关 的 配 置 也 设 置 好 了 ! [ 参 考 文 档 ] 1.vim 手 册 2.vim 中 文 手 册