第 17 章 指 随 意 动 , 移 动 如 飞 ( 二 )
指 随 意 动 , 移 动 如 飞 ( 二 ) 设 定 一 个 标 记 很 简 单 , 使 用 命 令 "m{a-zA-Z}" 就 可 以 了 。 例 如 , 命 令 "mt" 在 把 当 前 光 标 位 置 设 定 为 标 记 t; 命 令 "mT" 把 当 前 光 标 位 置 设 定 为 标 记 T。(:help m) 要 跳 转 到 指 定 的 标 记 , 使 用 命 令 "'{a-zA-Z}" 或 "{a-zA-Z}"。 例 如 , 命 令 "'t" 会 跳 转 到 标 记 t; 命 令 "'T" 会 跳 转 到 标 记 T。( :help ') 单 引 号 和 反 引 号 的 区 别 和 上 面 所 讲 的 一 样 ,"`" 在 跳 转 时 会 精 确 到 列 , 而 "'" 不 会 回 到 跳 转 时 光 标 所 在 的 那 一 列 , 而 是 把 光 标 放 在 第 一 个 非 空 白 字 符 上 。 标 记 也 可 以 被 删 除 , 使 用 命 令 ":delmarks" 可 以 删 除 指 定 标 记 。 命 令 ":marks" 列 出 所 有 的 标 记 。 关 于 标 记 , 有 两 个 非 常 有 用 的 插 件 , 一 个 是 ShowMarks, 另 外 一 个 叫 marks browser。 ShowMarks 是 我 最 常 用 的 插 件 之 一 , 它 使 用 vim 提 供 的 sign 功 能 以 及 高 亮 功 能 显 示 出 标 记 的 位 置 。 这 样 , 你 在 设 定 了 一 个 标 记 后 , 它 就 会 在 你 的 vim 窗 口 中 显 示 出 标 记 的 名 字 , 并 高 亮 这 一 行 。 在 你 的 $HOME/.vim 目 录 把 它 解 压 , 然 后 进 行 简 单 设 置 。 在 我 的 vimrc 中 , 对 ShowMarks 进 行 了 如 下 配 置 : """""""""""""""""""""""""""""" " showmarks setting """""""""""""""""""""""""""""" " Enable ShowMarks let showmarks_enable = 1 " Show which marks let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" " Ignore help, quickfix, non-modifiable buffers let showmarks_ignore_type = "hqm" " Hilight lower & upper marks let showmarks_hlline_lower = 1 let showmarks_hlline_upper = 1 首 先 , 使 能 showmarks 插 件 , 然 后 定 义 showmarks 只 显 示 全 部 的 大 写 标 记 和 小 写 , 并 高 亮 这 两 种 标 记 ; 对 文 件 类 型 为 help、quickfix 和 不 可 修 改 的 缓 冲 区 , 则 不 显 示 标 记 的 位 置 。 你 可 以 定 义 自 己 的 颜 色 来 高 亮 标 记 所 在 的 行 , 下 面 是 我 的 定 义 , 我 把 它 放 在 我 自 己 的 colorscheme 文 件 中 : " For showmarks plugin hi ShowMarksHLl ctermbg=Yellow ctermfg=Black guibg=#FFDB72 guifg=Black hi ShowMarksHLu ctermbg=Magenta ctermfg=Black guibg=#FFB3FF guifg=Black ShowMarks 插 件 中 已 经 定 义 了 一 些 快 捷 键 : mt - 打 开 / 关 闭 ShowMarks 插 件 mo - 强 制 打 开 ShowMarks 插 件 mh - 清 除 当 前 行 的 标 记 ma - 清 除 当 前 缓 冲 区 中 所 有 的 标 记 mm - 在 当 前 行 打 一 个 标 记 , 使 用 下 一 个 可 用 的 标 记 名 我 最 常 使 用 的 是 "mm" 和 "mh", 用 起 来 非 常 方 便 。 在 我 的 vimrc 中 , 把 Leader 定 义 为 ",", 所 以 每 次 都 使 用 ",mm" 和 ",mh" 来 设 置 和 删 除 mark。 64