這一章我們會講到怎么更有效地學(xué)習(xí)Vim,不過在此之前需要先做一些小小的準(zhǔn)備。
讓我們先創(chuàng)建一個mapping,這個mapping會為你的左手減輕很多負(fù)擔(dān)。執(zhí)行下面的命令:
~~~
:inoremap jk <esc>
~~~
ok,現(xiàn)在進(jìn)入插入模式然后敲擊`jk`。Vim會返回到常用模式,就像你敲擊了escape按鍵一樣。
在Vim中有很多默認(rèn)的方式可以退出插入模式:
* `<esc>`
* `<c-c>`
* `<c-[>`
使用上面的這幾種方式,你都需要伸出你的爪子,這會讓你感到很不自在。使用`jk`會很棒,因?yàn)檫@兩個按鍵正好就在你最強(qiáng)健有力的兩個手指下面,并且你不用搞得好像在演奏吉他和弦似的移動手指。
有些人可能更喜歡使用`jj`,但我更鐘意`jk`,有兩個原因:
* 使用兩個不同的按鍵,你可以“滾動”你的手指而不是把同一個按鍵按兩次。
* 如果你出于習(xí)慣在常用模式下按了`jk`,只會將光標(biāo)向下移動一下,然后又向上移動一下,最終光標(biāo)還是停留在原來的位置。但是在常用模式下按了`jj`的話,只會把光標(biāo)移動到一個不同的地方。
不過需要注意的是,如果在你所用的語言中`jk`會經(jīng)常組合出現(xiàn)(例如德語),你可能就需要選擇一個不同的mapping了。
## 學(xué)習(xí)Map
ok,現(xiàn)在你已經(jīng)有了一個新的mapping,你會怎么學(xué)習(xí)使用它呢?特別是你已經(jīng)用了這么久的escape按鍵,使用escape按鍵都已經(jīng)刻入了你的腦子中,以至于在編輯的時候你會不假思索的敲擊它。
重新學(xué)習(xí)一個mapping的竅門就是_強(qiáng)制_將之前的按鍵設(shè)置為不可用,_強(qiáng)迫_自己使用新的mapping。執(zhí)行下面的命令:
~~~
:inoremap <esc> <nop>
~~~
這個命令會告訴Vim在插入模式下敲擊escape按鍵后執(zhí)行`<nop>`(no operation),這樣escape按鍵在插入模式下就無效了。ok,現(xiàn)在你就_不得不_使用`jk`這個mapping來退出插入模式了。
一開始你可能不太適應(yīng),你還是會在插入模式下敲擊escape按鍵,并且以為已經(jīng)退出到了常用模式,然后開始敲擊按鍵準(zhǔn)備在常用模式下做一些事情,從而導(dǎo)致一些不需要的字符出現(xiàn)在你的文本中。這會讓你感到有些不爽,但如果你堅(jiān)持一段時間后,你會驚訝的發(fā)現(xiàn)你的思維和手指會多么快的適應(yīng) 新的mapping。用不到一到兩個小時你就不會再在插入模式下敲擊escape了。
這個方法適用于所有的用于替代原有操作方式的新mapping,包括在生活中也是如此。當(dāng)你想改掉一個壞習(xí)慣的時候,你最好能夠想一些辦法使得這個壞習(xí)慣很難甚至是不能發(fā)生。
如果你想學(xué)會自己做飯,不想每天都吃蓋澆飯,那么每天下班的時候就不要去成都小吃了。這樣你就會在餓了的時候想辦法去做點(diǎn)東西吃,當(dāng)前你先要確保你家里沒有泡面。
如果你想戒煙,那你就不要把煙帶在身上,把它放到車上。這樣當(dāng)你的煙癮又犯了的時候,你會覺得走到車?yán)锶ト熓且患艿疤鄣氖?,這樣你就不會吸了。
## 練習(xí)
如果還是會在Vim的常用模式中使用方向鍵移動光標(biāo),那么就將它們映射為`<nop>`。
如果你在編輯模式下也會使用方向鍵,同樣的,映射為`<nop>`吧。
正確使用Vim的關(guān)鍵就是使得自己能夠快速的離開插入模式,然后在常用模式下進(jìn)行移動。
- 前言
- 鳴謝
- 預(yù)備知識
- 打印信息
- 設(shè)置選項(xiàng)
- 基本映射
- 模式映射
- 精確映射
- Leaders
- 編輯你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 鍛煉你的手指
- 本地緩沖區(qū)的選項(xiàng)設(shè)置和映射
- 自動命令
- 本地緩沖區(qū)縮寫
- 自動命令組
- Operator-Pending映射
- 更多Operator-Pending映射
- 狀態(tài)條
- 負(fù)責(zé)任的編碼
- 變量
- 變量作用域
- 條件語句
- 比較
- 函數(shù)
- 函數(shù)參數(shù)
- 數(shù)字
- 字符串
- 字符串函數(shù)
- Execute命令
- Normal命令
- 執(zhí)行normal!
- 基本的正則表達(dá)式
- 實(shí)例研究:Grep 運(yùn)算符(Operator),第一部分
- 實(shí)例研究:Grep運(yùn)算符(Operator),第二部分
- 實(shí)例研究:Grep運(yùn)算符(Operator),第三部分
- 列表
- 循環(huán)
- 字典
- 切換
- 函數(shù)式編程
- 路徑
- 創(chuàng)建一個完整的插件
- 舊社會下的插件配置方式
- 新希望:用Pathogen配置插件
- 檢測文件類型
- 基本語法高亮
- 高級語法高亮
- 更高級的語法高亮
- 基本折疊
- 高級折疊
- 段移動原理
- Potion段移動
- 外部命令
- 自動加載
- 文檔
- 發(fā)布
- 還剩下什么?
