vim使ç¨è¿é¶
vim使ç¨è¿é¶
vim使ç¨è¿é¶
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
剑 不 离 手 - quickfix<br />
vim 可 以 同 时 记 住 最 新 的 10 个 错 误 列 表 , 也 就 是 说 你 最 近 10 次 使 用 ":make" 命 令 编 译 所 遇 到 的 错 误<br />
都 保 存 着 , 可 以 使 用 ":colder" 和 ":cnewer" 命 令 , 回 到 旧 的 错 误 列 表 , 或 者 到 更 新 的 错 误 列 表 。<br />
在 quickfix 模 式 里 经 常 用 到 的 命 令 有 :<br />
:cc 显 示 详 细 错 误 信 息 ( :help :cc )<br />
:cp 跳 到 上 一 个 错 误 ( :help :cp )<br />
:cn 跳 到 下 一 个 错 误 ( :help :cn )<br />
:cl 列 出 所 有 错 误 ( :help :cl )<br />
:cw 如 果 有 错 误 列 表 , 则 打 开 quickfix 窗 口 ( :help :cw )<br />
:col 到 前 一 个 旧 的 错 误 列 表 ( :help :col )<br />
:cnew 到 后 一 个 较 新 的 错 误 列 表 ( :help :cnew )<br />
更 多 的 命 令 , 以 及 这 些 命 令 更 详 细 的 解 释 , 请 参 见 手 册 。<br />
对 于 经 常 用 到 的 命 令 , 最 好 提 供 更 方 便 的 使 用 方 法 , 在 我 的 vimrc 中 的 定 义 :<br />
autocmd FileType c,cpp map :w:make<br />
nmap cn :cn<br />
nmap cp :cp<br />
nmap cw :cw 10<br />
现 在 使 用 ","( 先 按 , 再 按 空 格 ) 就 可 以 编 译 , 使 用 ",cp" 和 ",cn" 跳 到 上 一 个 和 下 一 个 错<br />
误 , 使 用 ",cw" 来 打 开 一 个 quickfix 窗 口 。 这 下 顺 手 多 了 !<br />
如 果 你 希 望 跳 转 到 出 错 的 文 件 时 , 使 用 一 个 分 隔 的 窗 口 打 开 , 请 参 阅 'switchbuf' 选 项 的 值 。<br />
在 vim7 中 , 每 个 窗 口 都 可 以 拥 有 自 己 的 位 置 列 表 , 这 样 , 你 就 能 够 同 时 打 开 多 个 位 置 列 表 了 , 而<br />
quickfix 列 表 在 整 个 vim 中 只 有 一 个 。 你 可 以 使 用 位 置 列 表 来 显 示 编 译 错 误 信 息 , 具 体 命 令 参 阅<br />
手 册 :":help location-list" 以 及 ":help :lmake"。<br />
[GREP]<br />
我 们 在 程 序 员 的 利 器 - cscope 中 讲 过 ,cscope 可 以 做 为 一 个 快 速 的 grep 程 序 使 用 , 对 于 我 们 的<br />
软 件 项 目 , 用 cscope 生 成 一 个 数 据 库 , 可 以 大 大 加 快 查 找 字 符 串 的 速 度 。 但 cscope 需 要 事 先 生 成<br />
一 个 数 据 库 , 对 一 些 简 单 的 查 找 , 不 需 要 专 门 为 之 生 成 数 据 库 , 这 时 候 可 以 使 用 grep。<br />
Grep 的 名 字 来 源 于 "g/re/p","re" 是 正 则 表 达 式 (regex) 的 意 思 ,"p" 是 打 印 , 也 就 是 把 匹 配 正 则<br />
表 达 式 的 行 打 印 出 来 。<br />
vim 既 可 以 使 用 外 部 的 grep 程 序 , 也 可 以 使 用 内 部 集 成 的 grep 功 能 。<br />
使 用 集 成 的 grep 命 令 非 常 简 单 , 通 常 使 用 格 式 为 :<br />
:vimgrep /main/gj **/*.c<br />
在 上 面 的 例 子 里 , 我 们 使 用 vim 内 部 集 成 的 grep 功 能 , 在 当 前 目 录 及 其 子 目 录 树 的 所 有 c 文 件 中 查<br />
找 main 字 符 串 , 如 果 一 行 中 main 出 现 了 多 次 , 每 个 匹 配 都 计 入 ; 在 查 找 到 后 , 不 立 即 跳 转 到 第 一<br />
个 匹 配 的 地 方 。<br />
使 用 内 部 集 成 的 grep 功 能 速 度 要 比 外 部 grep 慢 一 些 , 因 为 它 会 打 开 每 个 文 件 , 对 其 进 行 检 查 , 然<br />
后 关 闭 ; 但 集 成 的 grep 支 持 vim 增 强 的 正 则 表 达 式 , 可 以 利 用 它 进 行 更 为 复 杂 的 查 找 。 它 也 支 持<br />
vim 扩 展 的 文 件 通 配 符 表 示 方 式 , 见 ":help starstar-wildcard"。<br />
48