Vimscript 鍛煉你的手指

2018-02-24 16:02 更新

這一章我們會(huì)講到怎么更有效地學(xué)習(xí)Vim,不過在此之前需要先做一些小小的準(zhǔn)備。

讓我們先創(chuàng)建一個(gè)mapping,這個(gè)mapping會(huì)為你的左手減輕很多負(fù)擔(dān)。執(zhí)行下面的命令:

:inoremap jk <esc>

ok,現(xiàn)在進(jìn)入插入模式然后敲擊jk。Vim會(huì)返回到常用模式,就像你敲擊了escape按鍵一樣。

在Vim中有很多默認(rèn)的方式可以退出插入模式:

  • <esc>
  • <c-c>
  • <c-[>

使用上面的這幾種方式,你都需要伸出你的爪子,這會(huì)讓你感到很不自在。使用jk會(huì)很棒,因?yàn)檫@兩個(gè)按鍵正好就在你最強(qiáng)健有力的兩個(gè)手指下面,并且你不用搞得好像在演奏吉他和弦似的移動(dòng)手指。

有些人可能更喜歡使用jj,但我更鐘意jk,有兩個(gè)原因:

  • 使用兩個(gè)不同的按鍵,你可以“滾動(dòng)”你的手指而不是把同一個(gè)按鍵按兩次。
  • 如果你出于習(xí)慣在常用模式下按了jk,只會(huì)將光標(biāo)向下移動(dòng)一下,然后又向上移動(dòng)一下,最終光標(biāo)還是停留在原來的位置。但是在常用模式下按了jj的話,只會(huì)把光標(biāo)移動(dòng)到一個(gè)不同的地方。

不過需要注意的是,如果在你所用的語言中jk會(huì)經(jīng)常組合出現(xiàn)(例如德語),你可能就需要選擇一個(gè)不同的mapping了。

學(xué)習(xí)Map

ok,現(xiàn)在你已經(jīng)有了一個(gè)新的mapping,你會(huì)怎么學(xué)習(xí)使用它呢?特別是你已經(jīng)用了這么久的escape按鍵,使用escape按鍵都已經(jīng)刻入了你的腦子中,以至于在編輯的時(shí)候你會(huì)不假思索的敲擊它。

重新學(xué)習(xí)一個(gè)mapping的竅門就是_強(qiáng)制_將之前的按鍵設(shè)置為不可用,_強(qiáng)迫_自己使用新的mapping。執(zhí)行下面的命令:

:inoremap <esc> <nop>

這個(gè)命令會(huì)告訴Vim在插入模式下敲擊escape按鍵后執(zhí)行<nop>(no operation),這樣escape按鍵在插入模式下就無效了。ok,現(xiàn)在你就_不得不_使用jk這個(gè)mapping來退出插入模式了。

一開始你可能不太適應(yīng),你還是會(huì)在插入模式下敲擊escape按鍵,并且以為已經(jīng)退出到了常用模式,然后開始敲擊按鍵準(zhǔn)備在常用模式下做一些事情,從而導(dǎo)致一些不需要的字符出現(xiàn)在你的文本中。這會(huì)讓你感到有些不爽,但如果你堅(jiān)持一段時(shí)間后,你會(huì)驚訝的發(fā)現(xiàn)你的思維和手指會(huì)多么快的適應(yīng) 新的mapping。用不到一到兩個(gè)小時(shí)你就不會(huì)再在插入模式下敲擊escape了。

這個(gè)方法適用于所有的用于替代原有操作方式的新mapping,包括在生活中也是如此。當(dāng)你想改掉一個(gè)壞習(xí)慣的時(shí)候,你最好能夠想一些辦法使得這個(gè)壞習(xí)慣很難甚至是不能發(fā)生。

如果你想學(xué)會(huì)自己做飯,不想每天都吃蓋澆飯,那么每天下班的時(shí)候就不要去成都小吃了。這樣你就會(huì)在餓了的時(shí)候想辦法去做點(diǎn)東西吃,當(dāng)前你先要確保你家里沒有泡面。

如果你想戒煙,那你就不要把煙帶在身上,把它放到車上。這樣當(dāng)你的煙癮又犯了的時(shí)候,你會(huì)覺得走到車?yán)锶ト熓且患艿疤鄣氖?,這樣你就不會(huì)吸了。

練習(xí)

如果還是會(huì)在Vim的常用模式中使用方向鍵移動(dòng)光標(biāo),那么就將它們映射為<nop>。

如果你在編輯模式下也會(huì)使用方向鍵,同樣的,映射為<nop>吧。

正確使用Vim的關(guān)鍵就是使得自己能夠快速的離開插入模式,然后在常用模式下進(jìn)行移動(dòng)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)