上一章講的東西比較多,完全理解會有點難,所以這一章來點容易的。我們已經學習了如何定義本地緩沖區的映射和設置選項,現在以同樣的方式來學習本地緩沖區的縮寫。
打開你的`foo`和`bar`這兩個文件,切換到`foo`,然后執行下面的命令:
~~~
:iabbrev <buffer> --- —
~~~
在文件`foo`下進入插入模式輸入下面的文本:
~~~
Hello --- world.
~~~
Vim會為你將`---`替換為“Hello“。現在切換到`bar`試試。在`bar`中替換不會發生,這是因為我們所定義的縮寫被設置為只用于`foo`的本地緩沖區。
## 自動命令和縮寫
使用本地緩沖區的縮寫和自動命令來創建一個簡單的“snippet”系統。
執行下面的命令:
~~~
:autocmd FileType python :iabbrev <buffer> iff if:<left>
:autocmd FileType javascript :iabbrev <buffer> iff if ()<left>
~~~
打開一個Javascript文件然后輸入`iff`縮寫。然后再打開一個Python文件試試。Vim會依據文件類型在當前行執行合適的縮寫。
## 練習
為你經常編輯的文件創建更多的針對不同類型的文件的“snippet”縮寫。你可以為絕大多數語言創建`return`的縮寫,為javascript創建`function`的縮寫,以及為HTML文件創建`“`和`”`的縮寫。
將你創建的snippets加入到你的`~/.vimrc`文件中。
記住:最好的學習使用這些snippets的方法是_禁用_之前你做這些事情的方式。執行`:iabbrev <buffer> return NOPENOPENOPE`會_強迫_你使用縮寫,這個命令在你輸入return的時候不會輸出任何東西。為了節省學習的時間,為你剛才創建的snippets都創建一個上面的縮寫來_強迫_你使用你創建的snippets。
- 前言
- 鳴謝
- 預備知識
- 打印信息
- 設置選項
- 基本映射
- 模式映射
- 精確映射
- Leaders
- 編輯你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 鍛煉你的手指
- 本地緩沖區的選項設置和映射
- 自動命令
- 本地緩沖區縮寫
- 自動命令組
- Operator-Pending映射
- 更多Operator-Pending映射
- 狀態條
- 負責任的編碼
- 變量
- 變量作用域
- 條件語句
- 比較
- 函數
- 函數參數
- 數字
- 字符串
- 字符串函數
- Execute命令
- Normal命令
- 執行normal!
- 基本的正則表達式
- 實例研究:Grep 運算符(Operator),第一部分
- 實例研究:Grep運算符(Operator),第二部分
- 實例研究:Grep運算符(Operator),第三部分
- 列表
- 循環
- 字典
- 切換
- 函數式編程
- 路徑
- 創建一個完整的插件
- 舊社會下的插件配置方式
- 新希望:用Pathogen配置插件
- 檢測文件類型
- 基本語法高亮
- 高級語法高亮
- 更高級的語法高亮
- 基本折疊
- 高級折疊
- 段移動原理
- Potion段移動
- 外部命令
- 自動加載
- 文檔
- 發布
- 還剩下什么?