當(dāng)你弄熟了hjkl,正得意的“飛快”地上下左右移動(dòng)光標(biāo)的吠架,這時(shí)候需要給你潑潑冷水了。學(xué)會(huì)hjkl是第一步搂鲫,忘記hjkl是接下來(lái)的方向傍药。你看到這句話一定會(huì)感覺(jué)很裝逼,但是這句話是vim大神總結(jié)出來(lái)的“秘籍”魂仍,而且還專門為此做了一個(gè)練習(xí)的插件:wikitopian/hardmode拐辽。
這個(gè)插件的變態(tài)之處就在于沒(méi)有上下左右的概念,當(dāng)你call HardMode()之后擦酌,你會(huì)發(fā)現(xiàn)世界上竟有如此愚蠢的設(shè)計(jì)俱诸,瞬間又回到了當(dāng)初什么都不會(huì)的年代,各種不適應(yīng)赊舶,估計(jì)不消幾秒睁搭,你就想要繳械投降了吧。此時(shí)你會(huì)看到屏幕下方來(lái)自大神的嘲諷——You are weak笼平,看來(lái)大神為了培養(yǎng)新鮮血液真是用心良苦园骆。
言歸正傳,除了hjkl之外寓调,vim還有大量的更加高效的移動(dòng)方式锌唾。主要有以下幾種:
w、 e夺英、 W鸠珠、? E、? $秋麸、? ^渐排、0、? gg灸蟆、 G驯耻、CTRL-f、CTRL-b
每個(gè)指令的作用幫助文檔里面都有比較詳細(xì)的介紹炒考。比如:help w可缚,上圖中的iw/aw需要配合別的指令來(lái)使用,下面會(huì)有事例斋枢。
解釋一下w/W的區(qū)別:比如“help_123"既是word也是WORD帘靡,而"help-123"是一個(gè)WORD,2個(gè)word瓤帚。單個(gè)word一般是由字母/下劃線/數(shù)字等組成描姚,具體組成是在iskeyword中定義涩赢,單個(gè)WORD包含所有非空格的字符。具體可參考轩勘。
上面的都是一般入門都會(huì)接觸的筒扒,下面是稍微高級(jí)一點(diǎn)但是非常重要的
+ / - ? ? ? ? ? ? ? ? ? 移動(dòng)到下一行/上一行開(kāi)頭
H / L / M ? ? ? ? ? ?移動(dòng)到當(dāng)前屏幕的最上方/最下方/中間
{ / ( ? ? ? ? ? ? ? ? ? ?光標(biāo)向后移動(dòng)一個(gè)段落(以空行隔開(kāi))/一句(通常以.結(jié)尾)
ctrl-e / ctrl-y ? ? ? 向上/向下滾動(dòng)屏幕
Ctrl+d? / Ctrl+u ? 往前/向后滾動(dòng)半屏
還有一些沒(méi)怎么用過(guò),但是還是列出來(lái)
z<CR> ? ? ? ? ? ? ??將光標(biāo)所在行移動(dòng)到屏幕頂端
z. ? ? ? ? ? ? ? ? ? ? ? 將光標(biāo)所在行移動(dòng)到屏幕中間
z- ? ? ? ? ? ? ? ? ? ? ? 將光標(biāo)所在行移動(dòng)到屏幕低端
掌握了上面的一些命令可以顯著地提升光標(biāo)移動(dòng)的效率绊寻,但這還只能算是入門花墩,下面這四個(gè)應(yīng)該可以說(shuō)是vim的效率擔(dān)當(dāng)了。
f/F/t/T
比如如下一行字澄步,光標(biāo)在開(kāi)頭處冰蘑,如何迅速定位到括號(hào),并修改()里的內(nèi)容呢村缸?
public void test(String paraW){}
光標(biāo)移到行首懂缕,依次輸入f(ci(,是不是很神奇王凑?坐下坐下,正常操作聋丝。相比l以及w都略快吧索烹,f和t的區(qū)別在于f會(huì)跳轉(zhuǎn)到行內(nèi)查找的字符(包含),而t會(huì)跳轉(zhuǎn)到查找到的字符的前一位(不包含)弱睦,你可能會(huì)感覺(jué)上面的指令超綱了百姓,在此稍微翻譯一下,f(是指將光標(biāo)移動(dòng)到第一個(gè)左括號(hào)處况木,c表示修改垒拢,i(表示括號(hào)內(nèi)的內(nèi)容,連起來(lái)就是將光標(biāo)移動(dòng)到左括號(hào)并修改括號(hào)里面的內(nèi)容火惊。你是不是發(fā)現(xiàn)原來(lái)所謂的指令其實(shí)是非常簡(jiǎn)潔而美麗的語(yǔ)言求类?
熟練掌握了以上移動(dòng)指令后,hjkl可以退居二線了屹耐∈回到hardmode,現(xiàn)在h/l可以用w/W/e/E或者f/F來(lái)代替惶岭,如果一行很長(zhǎng)寿弱,f/F的效率絕對(duì)比左右移動(dòng)高,j可以用0b按灶,k可以用$w來(lái)代替症革,如果你感覺(jué)$鍵效率太低,可以map ,l $鸯旁,具體可以參考之前的配置相關(guān)的內(nèi)容噪矛,雖然你會(huì)發(fā)現(xiàn)有的時(shí)候hjkl的效率可能會(huì)高一些量蕊,但是沒(méi)辦法,先忍一忍摩疑,熟練之后危融,再恢復(fù)easymode,到那時(shí)vim還是那個(gè)vim雷袋,你已經(jīng)不是那個(gè)只會(huì)上向左右的你了吉殃。
另外推薦一下武功秘籍:vim/vi 如何高效使用(鍵盤圖打印版),可以打印下來(lái)沒(méi)事多瞅瞅楷怒,多實(shí)踐就是了蛋勺。
掌握了這一章的內(nèi)容,相信你已經(jīng)是一個(gè)合格的vimmer了鸠删。