Man page - vim(1)

Packages contains this manual

Available languages:

en fr it pl da tr ja ru zh_TW zh_CN de

Manual

VIM

名 称
概 述
描 述
选 项 (OPTIONS)
在 线 帮 助 (ON-LINE HELP)
文 件
参 见
作 者
缺 陷
[中 文 版 原 维 护 人 ]
[中 文 版 原 最 新 更 新 ]
[原 中 国 Linux论 坛 man手 册 页 翻 译 计 划 ]


名 称

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