內(nèi)容提要
Vim是一款功能豐富而強(qiáng)大的文本編輯器,其代碼補(bǔ)全、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中得到非常廣泛的使用。Vim能夠大大提高程序員的工作效率。對(duì)于Vim高手來(lái)說(shuō),Vim能以與思考同步的速度編輯文本。同時(shí),學(xué)習(xí)和熟練使用Vim又有一定的難度。
本書(shū)為那些想要提升自己的程序員編寫(xiě),閱讀本書(shū)是熟練掌握高超的Vim技巧的必由之路。全書(shū)共21章,包括123個(gè)技巧。每一章都是關(guān)于某一相關(guān)主題的技巧集合。每一個(gè)技巧都有針對(duì)性地解決一個(gè)或一類問(wèn)題,幫助讀者提升Vim的使用技能。本書(shū)示例豐富,講解清晰,采用一種簡(jiǎn)單的標(biāo)記方法,表示交互式的編輯效果,可以幫助讀者快速掌握和精通Vim。
本書(shū)適合想要學(xué)習(xí)和掌握Vim工具的讀者閱讀,有一定Vim使用經(jīng)驗(yàn)的程序員,也可以參考查閱以解決特定的問(wèn)題。
Vim是程序員、網(wǎng)站開(kāi)發(fā)人員及系統(tǒng)管理員的重要工具,其速度和效率令其他的文本編輯器難以望其項(xiàng)背。
Vim能在幾乎每一個(gè)系統(tǒng)上運(yùn)行,并支持大多數(shù)編程語(yǔ)言和標(biāo)記語(yǔ)言。
本書(shū)包含了Vim的實(shí)用技巧和使用指南。全書(shū)概括了12 1個(gè)技巧,通過(guò)豐富的示例、清晰的體例和詳細(xì)的講解,展示了高效使用Vim的嶄新方法。
現(xiàn)在,Vim新手問(wèn)我該怎么學(xué)習(xí),我知道怎么回答他們了。這本書(shū)甚至教會(huì)我一些事情。
——T im P o p e , V i m 核心貢獻(xiàn)者
Vim是一款文本編輯器,但是由于其陡峭的學(xué)習(xí)曲線,很多人還沒(méi)開(kāi)始使用就已經(jīng)放棄了,所以他們無(wú)法領(lǐng)略Vim“唯快不破”的設(shè)計(jì)思想和精巧的使用體驗(yàn)。
我本人是Vim的重度用戶,使用Vim處理文本文檔和編程超過(guò)十年之久,曾經(jīng)寫(xiě)過(guò)很多介紹Vim的文章,也曾經(jīng)有過(guò)為Vim寫(xiě)一本書(shū)的念頭,直到我看到這本《Vim實(shí)用技巧》。書(shū)中的內(nèi)容遠(yuǎn)遠(yuǎn)超過(guò)我所知所想,如果你以為自己是個(gè)Vim中級(jí)用戶,讀完前3章后,你就會(huì)發(fā)現(xiàn)自己依然是個(gè)初學(xué)者。在Vim領(lǐng)域,把此書(shū)譽(yù)為“寶藏”并不為過(guò)!
除了實(shí)用的技巧之外,作者在寫(xiě)書(shū)的過(guò)程中還穿插介紹了很多軟件設(shè)計(jì)的思想,同樣值得軟件從業(yè)者思考。
如果你不想把自己的時(shí)間浪費(fèi)在重復(fù)和低效上,請(qǐng)閱讀這本書(shū)。
如果你想讓你的手指思考,請(qǐng)閱讀這本書(shū)。
——池建強(qiáng),《MacTalk·人生元編程》作者
Drew Neil 是一位獨(dú)立程序員、作家和培訓(xùn)師。他在世界各地參加研討會(huì)、經(jīng)常在會(huì)議上發(fā)言,并專門(mén)從事制作教學(xué)視頻的工作。
第1章 Vim解決問(wèn)題的方式 1
技巧1 認(rèn)識(shí) . 命令 1
技巧2 不要自我重復(fù) 4
技巧3 以退為進(jìn) 6
技巧4 執(zhí)行、重復(fù)、回退 7
技巧5 查找并手動(dòng)替換 9
技巧6 認(rèn)識(shí) . 范式 11
第一部分 模式
第2章 普通模式 14
技巧7 停頓時(shí)請(qǐng)移開(kāi)畫(huà)筆 14
技巧8 把撤銷單元切成塊 15
技巧9 構(gòu)造可重復(fù)的修改 16
技巧10 用次數(shù)做簡(jiǎn)單的算術(shù)運(yùn)算 18
技巧11 能夠重復(fù),就別用次數(shù) 20
技巧12 雙劍合璧,天下無(wú)敵 22
第3章 插入模式 26
技巧13 在插入模式中可即時(shí)更正錯(cuò)誤 26
技巧14 返回普通模式 27
技巧15 不離開(kāi)插入模式,粘貼寄存器中的文本 28
技巧16 隨時(shí)隨地做運(yùn)算 30
技巧17 用字符編碼插入非常用字符 31
技巧18 用二合字母插入非常用字符 32
技巧19 用替換模式替換已有文本 32
第4章 可視模式 34
技巧20 深入理解可視模式 34
技巧21 選擇高亮選區(qū) 36
技巧22 重復(fù)執(zhí)行面向行的可視命令 38
技巧23 只要可能,最好用操作符命令,而不是可視命令 39
技巧24 用面向列塊的可視模式編輯表格數(shù)據(jù) 42
技巧25 修改列文本 43
技巧26 在長(zhǎng)短不一的高亮塊后添加文本 45
第5章 命令行模式 47
技巧27 認(rèn)識(shí)Vim的命令行模式 47
技巧28 在一行或多個(gè)連續(xù)行上執(zhí)行命令 50
技巧29 使用‘:t’和‘:m’命令復(fù)制和移動(dòng)行 54
技巧30 在指定范圍上執(zhí)行普通模式命令 57
技巧31 重復(fù)上次的 Ex 命令 59
技巧32 自動(dòng)補(bǔ)全 Ex 命令 60
技巧33 把當(dāng)前單詞插入命令行 62
技巧34 回溯歷史命令 63
技巧35 運(yùn)行Shell命令 65
技巧36 批處理運(yùn)行Ex命令 69
第二部分 文件
第6章 管理多個(gè)文件 74
技巧37 用緩沖區(qū)列表管理打開(kāi)的文件 74
技巧38 用參數(shù)列表將緩沖區(qū)分組 77
技巧39 管理隱藏緩沖區(qū) 80
技巧40 將工作區(qū)切分成窗口 82
技巧41 用標(biāo)簽頁(yè)將窗口分組 85
第7章 打開(kāi)及保存文件 88
技巧42 用:edit命令打開(kāi)文件 88
技巧43 使用:find打開(kāi)文件 91
技巧44 使用netrw 管理文件系統(tǒng) 93
技巧45 把文件保存到不存在的目錄中 96
技巧46 以超級(jí)用戶權(quán)限保存文件 97
第三部分 更快地移動(dòng)及跳轉(zhuǎn)
第8章 用動(dòng)作命令在文檔中移動(dòng) 102
技巧47 讓手指保持在本位行上 102
技巧48 區(qū)分實(shí)際行與屏幕行 105
技巧49 基于單詞移動(dòng) 107
技巧50 對(duì)字符進(jìn)行查找 109
技巧51 通過(guò)查找進(jìn)行移動(dòng) 113
技巧52 用精確的文本對(duì)象 選擇選區(qū) 115
技巧53 刪除周邊,修改內(nèi)部 119
技巧54 設(shè)置位置標(biāo)記,以便 快速跳回 120
技巧55 在匹配括號(hào)間跳轉(zhuǎn) 122
第9章 在文件間跳轉(zhuǎn) 125
技巧56 遍歷跳轉(zhuǎn)列表 125
技巧57 遍歷改變列表 127
技巧58 跳轉(zhuǎn)到光標(biāo)下的文件 128
技巧59 用全局位置標(biāo)記在文件間快速跳轉(zhuǎn) 131
第四部分 寄存器
第10章 復(fù)制與粘貼 134
技巧60 用無(wú)名寄存器實(shí)現(xiàn)刪除、復(fù)制與粘貼操作 134
技巧61 深入理解Vim寄存器 137
技巧62 用寄存器中的內(nèi)容替換高亮選區(qū)的文本 142
技巧63 把寄存器的內(nèi)容粘貼出來(lái) 144
技巧64 與系統(tǒng)剪貼板進(jìn)行交互 147
第11章 宏 150
技巧65 宏的讀取與執(zhí)行 150
技巧66 規(guī)范光標(biāo)位置、直達(dá)目標(biāo)以及中止宏 153
技巧67 加次數(shù)回放宏 155
技巧68 在連續(xù)的文本行上重復(fù)修改 157
技巧69 給宏追加命令 160
技巧70 在一組文件中執(zhí)行宏 162
技巧71 用迭代求值的方式給列表編號(hào) 166
技巧72 編輯宏的內(nèi)容 168
第五部分 模式
第12章 按模式匹配及按原義匹配 174
技巧73 調(diào)整查找模式的大小寫(xiě)敏感性 174
技巧74 按正則表達(dá)式查找時(shí),使用\\v模式開(kāi)關(guān) 175
技巧75 按原義查找文本時(shí),使用\\V原義開(kāi)關(guān) 178
技巧76 使用圓括號(hào)捕獲子匹配 179
技巧77 界定單詞的邊界 181
技巧78 界定匹配的邊界 182
技巧79 轉(zhuǎn)義問(wèn)題字符 184
第13章 查找 188
技巧80 結(jié)識(shí)查找命令 188
技巧81 高亮查找匹配 190
技巧82 在執(zhí)行查找前預(yù)覽第一處匹配 191
技巧83 將光標(biāo)偏移到查找匹配的結(jié)尾 193
技巧84 對(duì)完整的查找匹配進(jìn)行操作 194
技巧85 利用查找歷史,迭代完成復(fù)雜的模式 197
技巧86 統(tǒng)計(jì)當(dāng)前模式的匹配個(gè)數(shù) 200
技巧87 查找當(dāng)前高亮選區(qū)中的文本 202
第14章 替換 204
技巧88 認(rèn)識(shí)substitute命令 204
技巧89 在文件范圍內(nèi)查找并替換每一處匹配 206
技巧90 手動(dòng)控制每一次替換操作 208
技巧91 重用上次的查找模式 209
技巧92 用寄存器的內(nèi)容替換 211
技巧93 重復(fù)上一次substitute命令 213
技巧94 使用子匹配重排CSV文件的字段 216
技巧95 在替換過(guò)程中執(zhí)行算術(shù)運(yùn)算 217
技巧96 交換兩個(gè)或更多的單詞 219
技巧97 在多個(gè)文件中執(zhí)行查找與替換 221
第15章 global命令 225
技巧98 認(rèn)識(shí)global命令 225
技巧99 刪除所有包含模式的文本行 226
技巧100 將TODO項(xiàng)收集至寄存器 228
技巧101 將CSS文件中所有規(guī)則的屬性按照字母排序 230
第六部分 工具
第16章 通過(guò)ctags建立索引,并用其瀏覽源代碼 236
技巧102 認(rèn)識(shí)ctags 236
技巧103 配置Vim使用ctags 239
技巧104 使用Vim的標(biāo)簽跳轉(zhuǎn)命令,瀏覽關(guān)鍵字的定義 241
第17章 編譯代碼,并通過(guò)Quickfix列表瀏覽錯(cuò)誤信息 245
技巧105 不用離開(kāi)Vim也能編譯代碼 245
技巧106 瀏覽Quickfix列表 248
技巧107 回溯以前的Quickfix列表 251
技巧108 定制外部編譯器 251
第18章 通過(guò)grep、vimgrep以及其他工具對(duì)整個(gè)工程進(jìn)行查找 255
技巧109 不必離開(kāi)Vim也能調(diào)用grep 255
技巧110 定制grep程序 257
技巧111 使用Vim內(nèi)置正則表達(dá)式引擎的Grep 260
第19章 自動(dòng)補(bǔ)全 263
技巧112 認(rèn)識(shí)Vim的關(guān)鍵字自動(dòng)補(bǔ)全 263
技巧113 與自動(dòng)補(bǔ)全的彈出式菜單進(jìn)行交互 265
技巧114 掌握關(guān)鍵字的來(lái)龍去脈 267
技巧115 使用字典中的單詞進(jìn)行自動(dòng)補(bǔ)全 269
技巧116 自動(dòng)補(bǔ)全整行文本 270
技巧117 自動(dòng)補(bǔ)全單詞序列 271
技巧118 自動(dòng)補(bǔ)全文件名 273
技巧119 根據(jù)上下文自動(dòng)補(bǔ)全 274
第20章 利用Vim的拼寫(xiě)檢查器,查找并更正拼寫(xiě)錯(cuò)誤 276
技巧120 對(duì)你的工作進(jìn)行拼寫(xiě)檢查 276
技巧121 使用其他拼寫(xiě)字典 278
技巧122 將單詞添加到拼寫(xiě)文件中 279
技巧123 在插入模式下更正拼寫(xiě)錯(cuò)誤 280
第21章 接下來(lái)干什么 283
21.1 繼續(xù)練習(xí) 283
21.2 定制你自己的Vim 283
21.3 欲善其事,先利其器 284
附錄A 根據(jù)個(gè)人喜好定制Vim 285
A.1 動(dòng)態(tài)改變Vim的設(shè)置項(xiàng) 285
A.2 將配置信息存至vimrc 文件 287
A.3 為特定類型的文件應(yīng)用個(gè)性化設(shè)置 288