名 稱
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/>
參 見
作 者
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手 冊 頁 翻 譯 計 劃 ]
跋
本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 獲 取 日 期 : 2016年12月14日 翻 譯 日 期 : 2016年12月18日 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh