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

" mark setting<br />

""""""""""""""""""""""""""""""<br />

nmap hl MarkSet<br />

vmap hl MarkSet<br />

nmap hh MarkClear<br />

vmap hh MarkClear<br />

nmap hr MarkRegex<br />

vmap hr MarkRegex<br />

这 样 , 当 我 输 入 ",hl" 时 , 就 会 把 光 标 下 的 单 词 高 亮 , 在 此 单 词 上 按 ",hh" 会 清 除 该 单 词 的 高 亮 。<br />

如 果 在 高 亮 单 词 外 输 入 ",hh", 会 清 除 所 有 的 高 亮 。<br />

你 也 可 以 使 用 virsual 模 式 选 中 一 段 文 本 , 然 后 按 ",hl", 会 高 亮 你 所 选 中 的 文 本 ; 或 者 你 可 以<br />

用 ",hr" 来 输 入 一 个 正 则 表 达 式 , 这 会 高 亮 所 有 符 合 这 个 正 则 表 达 式 的 文 本 。<br />

你 可 以 在 高 亮 文 本 上 使 用 ",#" 或 ",*" 来 上 下 搜 索 高 亮 文 本 。 在 使 用 了 ",#" 或 ",*" 后 , 就 可 以 直 接<br />

输 入 "#" 或 "*" 来 继 续 查 找 该 高 亮 文 本 , 直 到 你 又 用 "#" 或 "*" 查 找 了 其 它 文 本 。<br />

如 果 你 在 启 动 vim 后 重 新 执 行 了 colorscheme 命 令 , 或 者 载 入 了 会 话 文 件 , 那 么 mark 插 件 的 颜 色 就<br />

会 被 清 掉 , 解 决 的 办 法 是 重 新 source 一 下 mark 插 件 。 或 者 像 我 一 样 , 把 mark 插 件 定 义 的<br />

highlight 组 加 入 到 你 自 己 的 colorscheme 文 件 中 。 例 如 , 把 下 面 的 语 句 加 到 desert_my.vim 及<br />

darkblue_my.vim 中 :<br />

" For mark plugin<br />

hi MarkWord1 ctermbg=Cyan ctermfg=Black guibg=#8CCBEA guifg=Black<br />

hi MarkWord2 ctermbg=Green ctermfg=Black guibg=#A4E57E guifg=Black<br />

hi MarkWord3 ctermbg=Yellow ctermfg=Black guibg=#FFDB72 guifg=Black<br />

hi MarkWord4 ctermbg=Red ctermfg=Black guibg=#FF7272 guifg=Black<br />

hi MarkWord5 ctermbg=Magenta ctermfg=Black guibg=#FFB3FF guifg=Black<br />

hi MarkWord6 ctermbg=Blue ctermfg=Black guibg=#9999FF guifg=Black<br />

不 知 道 为 什 么 , 我 的 vim 7.0 在 切 换 到 其 它 缓 冲 区 然 后 再 切 换 回 来 时 , 原 来 被 标 记 的 文 本 会 失 去<br />

高 亮 。 而 作 者 说 他 并 不 存 在 此 问 题 。 如 果 你 存 在 类 似 的 问 题 , 可 以 打 上 我 所 加 的 补 丁 :<br />

--- easwy/mark.vim 2006-12-01 13:02:18.000000000 +0800<br />

+++ plugin/mark.vim 2007-03-23 10:22:02.000000000 +0800<br />

@@ -440,6 +440,43 @@<br />

endif<br />

endfunction<br />

+" easwy add<br />

+" return the mark string under the cursor. multi-lines marks not supported<br />

+function! RedoMarkWord()<br />

+ " define variables if they don't exist<br />

+ call s:InitMarkVariables()<br />

+<br />

+ let i = 1<br />

+ while i

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

Saved successfully!

Ooh no, something went wrong!