Manpages

名 称

vim - Vi IMproved, 一 个 程 序 员 的 文 本 编 辑 器

概 述

vim [options] [file ..]
vim
[options] -
vim
[options] -t tag
vim
[options] -q [errorfile]

ex
view
gvim gview evim eview
rvim rview rgvim rgview

描 述

Vim 是 一 个 同 Vi 向 上 兼 容 的 文 本 编 辑 器 。 它 可 以 用 来 编 辑 任 何 纯 文 本 。 它 特 别 适 合 用 来 编 辑 程 序 。 它 对 Vi 作 了 许 多 增 强 : 多 层 撤 销 、 多 窗 口 、 多 缓 冲 区 (buffer)、 高 亮 语 法 显 示 、 命 令 行 编 辑 、 文 件 名 补 全 、 在 线 帮 助 、 可 视 选 择 等 等 。 请 用 ":help vi_diff.txt" 查 看 Vim 和 Vi 之 间 差 别 的 摘 要 。 在 运 行 Vim 的 时 候 , 可 以 用 ":help" 命 令 获 得 很 多 帮 助 信 息 。 请 参 考 下 面 的 “ 在 线 帮 助 ”一 节 。 通 常 情 况 下 , vim 使 用 直 接 把 文 件 名 作 为 参 数 的 方 法 来 编 辑 文 件 :

vim 文 件 名 更 通 用 地 来 说 , Vim 使 用 下 述 方 式 从 命 令 行 启 动 :

vim [选 项 ] [文 件 列 表 ] 如 果 没 有 给 定 文 件 , 则 编 辑 器 会 打 开 一 个 空 的 缓 冲 区 。 否 则 就 会 用 下 面 四 个 中 的 一 个 方 式 来 选 择 要 编 辑 的 文 件 。

文 件 .. 文 件 名 列 表 。 第 一 个 会 作 为 当 前 文 件 读 入 缓 冲 区 。 光 标 会 停 在 缓 冲 区 的 第 一 行 。 您 可 以 使 用

":next" 命 令 转 到 其 它 的 文 件 。 如 果 要 编 辑 一 个 以 "-" 开 头 的 文 件 , 请 在 文 件 列 表 前 面 加 上 "--"。

- 从 标 准 输 入 读 取 要 编 辑 的 文 件 。 命 令 从 标 准 错 误 读 取 , 此 时 标 准 错 误 应 当 是 一 个

TTY。

-t {tag} 被 编 辑 的 文 件 和 光 标 的 初 始 位 置 由 标 记

(tag) 决 定 , 标 记

有 点 像 一 种 goto 标 签 (goto label). 在 标 记 文 件 中 找 到 标 记 , 相 应 的 文 件 成 为 当 前 文 件 , 相 应 的 命 令 被 执 行 . 这 种 方 式 常 用 于 C 程 序 , 标 记 就 是 函 数 名 , 当 前 文 件 就 是 包 含 那 个 函 数 的 文 件 , 光 标 停 留 在 函 数 的 开 始 处 . 见 ":help tag-commands"。

-q [errorfile] 运 行 时 进 入 快 速 修 复 模 式 . 读 取 [errorfile] 文 件 并 显 示 第 一 个 错 误 . 如 果 没 有 [errorfile] 文 件 , 文 件 名 由 ’errorfile’ 选 项 决 定 (在 Amiga 为 "AztecC.Err", 在 其 他 系 统 中 为 "errors.vim"). 可 以 用 ":cn" 命 令 跳 到 其 它 错 误 处 . 见 ":help quickfix"。

Vim 会 根 据 不 同 命 令 有 不 同 的 表 现 , 尽 管 它 们 可 能 是 一 个 可 执 行 文 件 .

vim 正 常 模 式 , 所 有 都 是 默 认 状 态

.

ex 以

Ex 模 式 运 行 . 用 ":vi" 命 令 进 入 正 常 模 式 . 也 可 以 加 上 "-e" 选 项 进 入 此 模 式 .

view 以 只 读 模 式 运 行

. 你 被 禁 止 写 文 件 . 也 可 以 加 上 "-R" 选 项 进 入

此 模 式 .

gvim gview

GUI 版 本 。 开 启 一 个 新 的 窗 口 . 也 可 以 加 上 "-g" 选 项 进 入 此 模 式 .

rvim rview rgvim rgview 同 上 面 的 相 同 , 只 是 加 上 了 限 制 , 不 能 运 行 shell 程 序 , 也 不 能 暂 停 Vim . 也 可 以 加 上 "-Z" 选 项 进 入 此 模 式 .

选 项 (OPTIONS)

所 有 选 项 都 可 以 以 任 何 顺 序 出 现 , 可 以 在 文 件 名 前 , 也 可 以 在 文 件 名 后 . 没 有 参 数 的 选 项 可 以 出 现 在 一 个 "-" 后 面 .

+[num] 对 于 第 一 个 文 件 , 光 标 会 停 在 第

"num" 行 . 如 果 没 有 "num"

, 则 光 标 会 停 在 最 后 一 行 .

+/{pat} 对 于 第 一 个 文 件 , 光 标 会 停 在

{pat} 第 一 次 出 现 的 地 方 . 搜 寻

模 式 见 ":help search-pattern"。

+{command}

-c {command} 读 入 第 一 个 文 件 后 会 执 行 {command} 命 令 . {command} 应 为 Ex 命 令 . 如 果 {command} 中 包 含 有 空 格 , 必 须 用 双 引 号 括 住 (这 个 取 决 于 所 用 的 shell). 例 : Vim "+set si" main.c 注 意 : 你 最 多 可 以 用 10 个 "+" 或 者 "-c" 命 令 .

-b 二 进 制 模 式

. 设 置 一 些 选 项 , 这 样 就 可 以 用 来 编 辑 二 进 制 和

可 执 行 文 件 了 .

-C 兼 容

. 设 置 ’compatible’ 选 项 . 这 样 就 算 存 在 .vimrc 文 件

Vim 也 会 基 本 上 象 Vi 一 样 了 .

-d {device} 打 开

{device} 用 作 终 端 , 只 在 Amiga 下 。 例 : "-d

con:20/30/600/150".

-e 以

Ex 模 式 运 行 Vim , 就 像 运 行 "ex" 一 样 。

-f 前 台

运 行 。 对 于 GUI 版 本 , Vim 不 会 同 运 行 它 的 shell 分 离 。 在 Amiga 中 , Vim 不 会 重 新 启 动 来 开 启 一 个 新 窗 口 . 这 个 选 项 会 用 在 当 Vim 被 另 外 一 个 程 序 执 行 , 并 且 这 个 程 序 想 等 编 辑 动 作 结 束 后 再 运 行 的 时 候 (如 mail). 在 Amiga 上 ":sh" 和 ":!" 不 会 起 作 用 .

-F

如 果 Vim 编 译 时 加 入 了 对 从 右 到 左 书 写 的 文 件 FKMAP 以 及 Farsi 键 盘 映 射 的 支 持 , Vim 会 以 Farsi 模 式 运 行 , 比 如 设 置 ’fkmap’ 和 ’rightleft’ 选 项 .不 然 Vim 会 显 示 一 条 错 误 信 息 并 终 止 .

-g

如 果 Vim 编 译 时 加 入 GUI 支 持 , 会 开 启 GUI, 不 然 Vim 会 显 示 一 条 错 误 信 息 并 终 止 .
-h

Vim 显 示 命 令 行 参 数 和 选 项 的 帮 助 , 然 后 终 止 .

-H

如 果 Vim 编 译 时 加 入 了 对 从 右 到 左 书 写 的 文 件 RIGHTLEFT 以 及 Hebrew 键 盘 映 射 的 支 持 , Vim 会 以 Hebrew 模 式 运 行 , 比 如 设 置 ’hkmap’ 和 ’rightleft’ 选 项 . 不 然 Vim 会 显 示 一 条 错 误 信 息 并 终 止 .

-i {viminfo} 准 许 使 用 viminfo 文 件 , 这 个 选 项 设 置 使 用 的 文 件 名 , 默 认 的 是 "~/.viminfo". 用 "NONE" 文 件 名 也 可 以 跳 过 使 用 .viminfo 文 件 .

-L 同

-r 一 样 .

-l

Lisp 模 式 . 打 开 ’lisp’ 和 ’showmatch’ 选 项 .

-m 禁 止 修 改 文 件

. 设 置 ’write’ 选 项 , 这 样 就 不 能 写 文 件 了 .

-N 非 兼 容 模 式

. 设 置 ’compatible’ 选 项 . 这 样 Vim 会 表 现 得 更 好 , 就 算 .vimrc 文 件 不 存 在 也 会 同 Vi 不 兼 容 .

-n 禁 止 交 换 文 件 , 这 样 在 崩 溃 后 就 不 能 恢 复 文 件 了

. 对 于 编 辑

在 很 慢 的 媒 体 中 的 文 件 很 有 好 处 (比 如 软 盘 ), 也 可 以 用 ":set uc=0" 禁 止 交 换 , 用 ":set uc=200" 开 启 交 换 .

-o[N] 打 开

N 个 窗 口 . 如 果 没 有 N, 为 每 个 文 件 开 一 个 窗 口 .

-R 只 读

模 式 . 设 置 ’readonly’ 选 项 . 你 仍 然 可 以 编 辑 缓 冲 区 , 但 是 不 能 重 写 文 件 . 如 果 你 要 重 写 文 件 , 必 须 在 Ex 命 令 中 用 惊 叹 号 , 比 如 ":w!". -R 选 项 隐 含 了 -n 选 项 (见 下 ). ’readonly’ 选 项 可 以 用 ":set noro" 设 置 . 见 ":help ’readonly’".

-r

列 出 交 换 文 件 , 显 示 关 于 恢 复 文 件 的 信 息 .
-r {file} 恢 复 模 式 . 交 换 文 件 是 用 来 恢 复 在 编 辑 过 程 中 崩 溃 了 的 文

件 . 交 换 文 件 名 是 被 编 辑 文 件 名 后 面 加 上 ".swp". 见 ":help recovery".

-s 安 静 模 式

. 只 在 用 "Ex" 启 动 或 者 用 了 "-e" 选 项 才 有 用 .

-s {scriptin} 读 入 脚 本 文 件 {scriptin}. 文 件 里 的 字 符 就 像 你 直 接 输 入 一 样 的 , 也 可 以 用 ":source! {scriptin}" 命 令 实 现 这 个 功 能 . 如 果 在 编 辑 器 结 束 前 就 读 到 了 文 件 尾 , 就 接 着 从 键 盘 读 入 .
-T {terminal} 告 诉 Vim 你 用 的 终 端 的 名 字 , 只 有 当 不 能 自 动 确 定 的 时 候 才 这 样 . 它 必 须 是 Vim (builtin) 能 辨 认 的 终 端 或 者 是 在 termcap 或 者 terminfo 文 件 中 定 义 了 的 .

-u {vimrc} 用

{vimrc} 文 件 里 的 命 令 来 初 始 化 , 跳 过 所 有 其 它 的 初 始

化 , 用 这 个 来 编 辑 特 殊 类 型 的 文 件 . 也 可 以 用 "NONE" 来 跳 过 所 有 初 始 化 . 在 vim 中 用 ":help initialization" 查 看 更 多 信 息 .

-U {gvimrc} 用

{gvimrc} 文 件 里 的 命 令 来 初 始 化 GUI, 跳 过 所 有 其 它 的

GUI 初 始 化 , 也 可 以 用 "NONE" 来 跳 过 所 有 GUI 初 始 化 . 在 vim 中 用 ":help gui-init" 查 看 更 多 信 息 .

-V 冗 长 显 示

. 显 示 执 行 初 始 化 代 码 和 读 入 的 文 件 , 并 且 写

viminfo 文 件 .

-v 以

Vi 模 式 运 行 Vim , 就 像 运 行 "vi" 一 样 , 只 有 运 行 "ex" 时

才 有 用 .

-w {scriptout} 所 有 在 Vim 退 出 前 你 键 入 的 字 符 都 会 被 存 入 {scriptout} 文 件 . 这 用 来 创 建 一 个 脚 本 文 件 , 你 可 以 用 "vim -s" 和 ":source!" 来 使 用 . 如 果 {scriptout} 存 在 , 会 把 字 符 追 加 到 后 面 .
-W {scriptout} 同 -w 一 样 , 但 是 是 覆 盖 原 来 的 文 件 .

-x 写 文 件 时 加 密

. 会 提 示 你 输 入 密 码 .

-Z 受 限 模 式

. 同 运 行 以 "r" 开 头 的 程 序 同 效 .

-- 表 明 选 项 结 束

. 在 此 之 后 的 参 数 都 会 被 认 为 是 文 件 名 , 可 以

用 这 个 来 编 辑 一 个 以 ’-’ 开 头 的 文 件 .

在 线 帮 助 (ON-LINE HELP)

Vim 中 键 入 ":help" 来 获 得 帮 助 . 用 ":help subject" 来 获 得 关 于 一 个 特 定 主 题 的 帮 助 . 例 如 用 ":help ZZ" 来 获 得 关 于 "ZZ" 的 帮 助 . 用 <Tab> 和 CTRL-D 来 完 成 帮 助 主 题 (":help cmdline-completion"). 可 以 用 标 记 从 一 个 地 方 跳 到 另 一 个 地 方 (有 点 像 超 文 本 连 接 , 见 ":help"). 所 有 的 文 档 都 可 以 这 样 来 浏 览 , 比 如 ":help syntax.txt".

文 件

/usr/share/vim/vim80/doc/*.txt

Vim 的 文 档 文 件 。 请 使 用 ":help doc-file-list" 获 得 完 整 的 列 表 。

/usr/share/vim/vim80/doc/tags 在 文 档 文 件 中 查 找 信 息 用 的 标 签 文 件 。
/usr/share/vim/vim80/syntax/syntax.vim 系 统 层 面 的 语 法 初 始 化 文 件 。
/usr/share/vim/vim80/syntax/*.vim 各 种 语 言 的 语 法 文 件 。
/usr/share/vim/vimrc 系 统 层 面 的 Vim 初 始 化 文 件 。

~/.vimrc 您 的 个 人

Vim 初 始 化 文 件 。

/usr/share/vim/gvimrc 系 统 层 面 的 gvim 初 始 化 文 件 。

~/.gvimrc 您 的 个 人

gvim 初 始 化 文 件 。

/usr/share/vim/vim80/optwin.vim

":options" 命 令 所 用 的 脚 本 文 件 , 这 是 个 查 看 和 设 置 选 项 的 好 方 法 。

/usr/share/vim/vim80/menu.vim 系 统 层 面 的 gvim 菜 单 初 始 化 文 件 。
/usr/share/vim/vim80/bugreport.vim 用 来 生 成 错 误 报 告 的 脚 本 文 件 。 详 见 ":help bugs"。
/usr/share/vim/vim80/filetype.vim 根 据 文 件 名 来 判 定 文 件 类 型 的 脚 本 文 件 。 详 见 ":help ’filetype’"。
/usr/share/vim/vim80/scripts.vim 根 据 文 件 内 容 来 判 定 文 件 类 型 的 脚 本 文 件 。 详 见 ":help ’filetype’"。
/usr/share/vim/vim80/print/*.ps 用 于 PostScript 打 印 的 文 件 。 要 了 解 最 新 信 息 , 请 查 看 VIM 主 页 :
<URL:http://www.vim.org/>;

参 见

vimtutor(1)

作 者

Vim 的 大 部 分 都 是 Bram Moolenaar 在 很 多 人 的 帮 助 下 完 成 的 。 请 见 vim 下 的 ":help credits"。 虽 然 不 大 可 能 还 有 原 始 的 代 码 存 在 , 但 是 Vim 仍 然 是 基 于 Stevie 写 的 代 码 , 之 后 被 Tim Thompson、 Tony Andrews 和 G.R. (Fred) Walter 修 改 而 成 的 。

缺 陷

也 许 有 吧 。 请 用 ":help todo" 查 看 已 知 问 题 的 列 表 。 请 留 意 , 有 不 少 地 方 可 能 被 其 他 人 视 为 缺 陷 与 错 误 , 但 实 际 上 这 只 是 因 为 程 序 忠 实 地 还 原 了 Vi 的 行 为 操 作 。 如 果 你 觉 得 有 些 地 方 “因 为 和 Vi 的 行 为 不 一 样 ”而 应 该 是 错 误 的 , 也 许 你 应 该 再 仔 细 阅 读 一 下 vi_diff.txt 文 件 ( 或 者 在 Vim 中 输 入 "help vi_diff.txt") 。 您 也 应 该 查 一 查 “compatible”和 “cpoptions”选 项 的 用 法 。

[中 文 版 原 维 护 人 ]

唐 友 <tony_ty [AT] 263.net>

[中 文 版 原 最 新 更 新 ]

2001/8/30

[原 中 国 Linux论 坛 man手 册 页 翻 译 计 划 ]

http://cmpp.linuxforum.net

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 获 取 日 期 : 2016-12-14 翻 译 日 期 : 2016-12-18 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh