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