大家来学 Vim 一個历久弥新的编辑器 繁体版 PDF 文档 - PDF 电子书

大家来学 Vim 一個历久弥新的编辑器 繁体版 PDF 文档

发布于 2021-08-18 字数 11773 浏览 1102 评论 0

鑑于仍有许多人还没找到顺手的编辑器,而许多想学 vi 的人又觉得无从下手,因此在此提出一些个人的心得,希望能对这些朋友有点帮助。

真要深入的话,大多数的前辈都认为 vi 比 emacs/xemcas 还难学。但谁又真的需要熟悉编辑器的所有功能呢?你大可以边用边学啊!需要用到的先学,其它的就放一边,只要能善用一些常用到的功能,又何必要那麽深入呢?而且您在使用当中经常会发现一些新功能,这又会马上让您给赚到了。

目 錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
1 進來先看看. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 為什麼選 Vim ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 何處抓 Vim(elvis)?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 編譯安裝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2 elvis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.3 nvi-m17n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 勤前教育 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 常態模式(Normal mode). . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2 插入模式(Insert mode) . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.3 命令列模式(Cmdline mode or Command-line mode). . . . . . . . . . . . 4
1.4.4 反白模式(Visual mode) . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.5 選擇模式(Select mode) . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.6 Ex 模式(Ex mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 基本教練:step by step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.1 由命令列來開檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.2 先進入 vim 後再開檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.3 編寫文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5.4 存檔、離開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 游標的移動. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 基本的游標移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 進階的游標移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 特殊的移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 基本編輯指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 五種額外模式(additional mode). . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1 操作等待模式(operator-pending mode). . . . . . . . . . . . . . . . . . . 10
3.1.2 取代模式(replace mode). . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.3 插入常態模式(insert normal mode). . . . . . . . . . . . . . . . . . . . . 11
3.1.4 插入反白模式(insert visual mode) . . . . . . . . . . . . . . . . . . . . . 11
3.1.5 插入選擇模式(insert select mode) . . . . . . . . . . . . . . . . . . . . . 11
3.2 進入插入模式的指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 刪除指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 取代及還原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.5 加上數目字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.6 簡單重排功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 複製(yank) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1 指令說明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Register 緩衝區 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.1 register 的種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 天大的指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4 疑難雜症 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4.1 那 mouse 中鍵的剪貼功能還有嗎? . . . . . . . . . . . . . . . . . . . . . . 18
4.4.2 軟體間互相 copy 時,常常都搞得天下大亂耶! . . . . . . . . . . . . . . . . . 18
5 搜尋、替換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1 搜尋 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 更方便的搜尋操作(Vim 才有) . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3 替換(substitute) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.4 書籤功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.5 Vim 對於書籤的擴充功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.5.1 小寫英文字母 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.5.2 大寫英文字母 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.5.3 阿拉伯數目字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.5.4 :marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 叫檔、存檔、緊急回復. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1 開檔的一些花招 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2 多檔編輯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3 離開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 Vim 的加密功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4.1 vim -x [檔名] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4.2 進入 vim 編輯檔案中,可用 :X 指令 . . . . . . . . . . . . . . . . . . . . . . 25
6.5 緊急回復 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7 各種標示方法及視窗操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.1 標示指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.2 視窗操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8 shell 命令及求助系統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.1 shell 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.2 求助系統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9 set 功能設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.1 該在何處設定呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.1.1 Vim 的設定檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.1.2 elvis 的設定檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.1.3 nvi-m17n 的設定檔. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.2 如何得知目前的設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.3 各種 set 功能說明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.4 關於 softtabstop[sts] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.5 Vim 的 modeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.6 關於折行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.7 我的設定檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.7.1 .vimrc 範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.7.2 .gvimrc 範例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.7.3 .vim 目錄範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10 規則表示式的運用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.1 基本的匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.2 中介字元(metacharacter, or character classes) . . . . . . . . . . . . . . . . . 46
10.3 全域性的指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.4 & 替代變數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.5 greedy 陷阱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11 把 Vim 折疊(folding)? . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.1 手動折疊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.1.1 折疊的產生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.1.2 折疊的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.1.3 折疊的記憶 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.2 自動折疊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.2.1 以縮行為依據 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.2.2 以特殊的表示法為依據 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.2.3 以語法為依據 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.2.4 以是否更改過為依據 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.2.5 以文件上的標誌為依據 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12 Vim tags 的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
12.1 各種程式碼專用 tag 工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
12.2 tags 檔案的格式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
12.3 tag 檔案的製作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
12.4 一般的 tag 使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
12.5 Vim 線上說明文件的製作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.5.1 doctags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.5.2 由 Vim 裡頭作線上說明. . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
13 Vim script 簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
13.1 一些簡單的 macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
13.1.1 按鍵對應. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
13.1.2 縮寫對應. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
13.1.3 定義新命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
13.1.4 新命令的屬性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
13.2 Vim script 的語法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
14 Vim 和其他軟體的配合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.1 和郵件、新聞軟體的配合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.1.1 mutt + vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.1.2 slrn + vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.2 和編譯程式的配合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.3 和 TEX/LATEX 的配合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
14.4 和 Java 的配合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
15 Vim tips 集錦 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
16 GNU 自由文件許可證原文 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
授 權 聲 明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
參 考 資 料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
索 引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

下载地址:https://www.wenjiangs.com/wp-content/uploads/2021/08/dajiaxue-vim.zip

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2512 文章
30 评论
82689 人气
更多

推荐作者

瑾兮

文章 11 评论 2

carlo_sn

文章 0 评论 0

15867725375

文章 0 评论 0

a3576419

文章 0 评论 0

wendy

文章 0 评论 0