Vim 8 文本處理實戰 (Mastering Vim: Build a software development environment with Vim and Neovim)
內容描述
作為全面介紹Vim使用方法的教程,本書介紹了各種常用的文本編輯方法和程序設計中的實用操作,深入Vim內部的數據結構和VimScript腳本編程,內容詳實。
本書基於Vim 8平台,介紹了前沿分支Neovim,還推薦了更先進的Oni編輯器,兼容並包,集Vim社區典型使用經驗和發展趨勢於一體。
本書面向的讀者群體是所有使用Vim的程序員,書中的示例文本為Python代碼,並詳細介紹了Git和正則表達式。
讀者需要對操作系統和程序設計有基本的了解,特別是需要了解Linux操作系統的基本使用。
雖然本書嘗試兼顧三大操作系統,但毫無疑問書中內容以Linux為主。
本書可以幫助讀者完善Vim技能,增加程序設計的知識儲備。
目錄大綱
第1章開始Vim之旅1
1.1技術性要求2
1.2開始對話(關於模式界面) 2
1.3安裝3
1.3.1在Linux系統中設置Vim 3
1.3.2在macOS系統中設置Vim 4
1.3.3在Windows系統中設置Vim 9
1.3.4可視化的Vim:gVim 12
1.3.5安裝結果的驗證和故障排除14
1.4命令行Vim和gVim 16
1.5通過.vimrc文件來配置Vim 17
1.6常用操作(特別是如何退出Vim) 18
1.6.1打開文件19
1.6.2修改文字20
1.6.3保存和關閉文件21
1.6.4關於交換文件23
1.6.5隨意移動:與編輯器對話24
1.6.6插入模式下的簡單編輯27
1.6.7持久性的撤銷和重複29
1.6.8通過:help閱讀Vim手冊30
1.7小結33
第2章高級編輯和文本瀏覽34
2.1技術要求34
2.2安裝插件35
2.3組織工作區36
2.3.1緩衝區37
2.3.2插件——unimpaired 39
2.3.3窗口39
2.3.4標籤頁45
2.3.5折疊46
2.4文件樹的瀏覽49
2.4.1目錄瀏覽器Netrw 50
2.4.2支持文件菜單的:e命令51
2.4.3插件——NERDTree 52
2.4.4插件——Vinegar 54
2.4.5插件——CtrlP 55
2.5文本的瀏覽56
2.5.1切換到插入模式59
2.5. 2用/和搜索60
2.5.3利用文本對象64
2.5.4插件——EasyMotion 65
2.6使用寄存器進行複制和粘貼66
2.6.1寄存器68
2.6.2從外部複製文本到Vim中69
2.7小結70
第3章使用先導鍵——插件管理71
3.1技術要求71
3.2插件的管理71
3.2.1 vim-plug 72
3.2.2榮譽推薦75
3.2.3分析運行慢的插件78
3.3模式詳解82
3.3.1正常模式82
3.3.2命令行模式和ex模式82
3.3.3插入模式83
3.3.4可視模式和選擇模式83
3.3.5替換模式和虛擬替換模式85
3.3.6終端模式86
3.4命令的重映射87
3.5先導鍵90
3.6插件的配置91
3.7小結93
第4章理解文本94
4.1技術要求94
4.2代碼自動補全94
4.2.1內置自動補全95
4.2.2 YouCompleteMe插件96
4.2. 3用標籤瀏覽代碼庫99
4.3撤銷樹和Gundo 103
4.4小結106
第5章構建、測試和執行107
5.1技術要求107
5.2使用版本控制108
5.2.1版本控制和Git介紹108
5.2.2 Git與Vim的整合(vim-fugitive) 115
5.3用vimdiff解決衝突118
5.3.1比較兩個文件118
5.3.2 vimdiff和Git 121
5.4 Tmux、Screen和Vim的終端模式124
5.4.1 Tmux 125
5.4.2 Screen 130
5.4. 3終端模式130
5.5構建和測試133
5.5.1快速恢復列表133
5.5.2位置列表135
5.5.3構建代碼135
5.5.4測試代碼137
5.5.5用Linter來檢查語法138
5.6小結142
第6章用正則表達式和宏來重構代碼144
6.1技術要求144
6.2用正則表達式來搜索和替換144
6.2.1搜索和替換145
6.2.2用參數列表來處理多個文件148
6.2.3正則表達式基礎150
6.2.4魔法(magic)詳解153
6.2.5正則表達式的實際案例154
6.3宏的錄製和回放158
6.3.1宏的編輯163
6.3.2遞歸的宏164
6.3.3跨文件運行宏166
6.4用插件來實現代碼重構166
6.5小結167
第7章定制自己的Vim 168
7.1技術要求168
7.2 Vim用戶界面169
7.2.1配色169
7.2.2狀態欄171
7.2.3 gVim相關的配置174
7.3配置文件的同步175
7.4健康的Vim定制習慣176
7.4.1優化工作流程176
7.4.2整理.vimrc 177
7.5小結179
第8章卓爾不凡的Vimscript 181
8.1技術要求181
8.2為什麼要用Vimscript 181
8.3如何執行Vimscript 182
8.4語法184
8.4.1設置變量184
8.4.2打印輸出185
8.4.3條件表達式186
8.4.4列表188
8.4.5字典190
8.4.6循環192
8.4.7函數194
8.4.8類195
8.4.9 Lambda表達式197
8.4.10映射和過濾197
8.4.11與Vim交互199
8.4.12文件相關的命令200
8.4.13輸入提示201
8.4.14使用幫助205
8.5關於編程風格的指南205
8.6編寫一個插件206
8.6. 1插件的文件佈局206
8.6.2一個基本的插件207
8.6.3插件的重新組織211
8.6.4插件的改進214
8.6.5插件的發布219
8.6.6還能進行哪些改進219
8.7延伸閱讀219
8.8小結220
第9章Neovim 221
9.1技術要求221
9.2為什麼需要另外一種Vim 221
9.3 Neovim的安裝和配置222
9.3.1檢查健康狀態223
9.3.2合理的默認選項225
9.4 Oni 226
9.5 Neovim高亮顯示插件228
9.6小結229
第10章延伸閱讀230
10.1高效文本編輯的7個習慣230
10.2無處不在的模式界面231
10.2.1擁有Vim用戶體驗的網頁瀏覽器232
10.2.2無處不在的Vim 234
10.3推薦的閱讀材料和社區236
10.3.1郵件列表236
10.3. 2 IRC 237
10.3.3其他社區237
10.3.4學習資源237
10.4小結238
作者介紹
Ruslan Osipov是谷歌的一名軟件工程師,是一位狂熱的旅行者和兼職博主。
他是一位自學成才的工程師;他於2012年開始發布個人Vim筆記,
並對編輯器的複雜性及其在優化開發工作流程中的應用越來越感興趣。