Vim - 02 - 九條好漢在「一般」
使用 Vim 的時候應該儘量保持在「一般模式」中,插入完應該回到一般模式編修,輸入指令後也會自動回到一般模式,而一般模式裡可以使用的許多指令也是也是 Vim 為什麼到今天還如此強大的原因。
這一次帶大家一窺 Vim「一般模式」奧妙的冰山一角!
動如脫免
上一回教大家在一般模式中用 h j k l
龜速蠕動,但是在速度就是力量的時代,還在慢慢一格一格的爬行那是連高手的車尾燈都看不到的。
先從一個字元進步到一個單字吧:
w
:向前/右移動一個單字b
:向後/左移動一個單字
注意!這邊所說的「單字」是指「英文單字」就是每個單字之間有一個空格或標點符號的「單字」,使用 w b
在中文文章裡移動比較像是在斷句間移動,請大家自已找個中文文檔實驗一下。
再從一個單字進步到一行:
0
:移動到行首$
:移動到行尾^
:移動到行首第一個非空白字元
在頁面「中」移動:
H
:移至本頁首行M
:移至本頁中間行L
:移至本頁最末行
在頁面「之間」移動
換一頁:
Ctrl+F
:下一頁Ctrl+B
:下一頁
換半頁:
Ctrl+D
:往下半頁Ctrl+U
:往上半頁
其實看到這邊大家應該有稍稍感覺到一件事情,就是VIM很多指令都是可以「念」出來的,像上面這幾個 Ctrl+D
(own)、Ctrl+U
(p)、M
(iddle)、H
(ight)、L
(ow)、w
(ord)、b
(ack)……等等,還有像是上一回提到的i
(nsert)、:q
(uit)、w
(rite)……等等,就跟很多 Unix 指令可以被念出來一樣,所以在一週學會 Vim 影片中,講者也提到,學 Vim 就是要把指令「念」出來,很多時候只要一念出來就知道是幹啥用的指令了。
另外兩個有趣的部落格可以參考:
- Learn to speak vim,學會「說」Vim,這個部落格還有很多關於 Vim 的文章,很值得去看看。
- Vim as Language,Vim 做為一種語言,同樣有一系列關於 Vim 的文章,同樣值得去看看。
編輯
其實新手知道怎麼進入插入模式、怎麼回到一般模式、怎樣存檔、怎樣退出 Vim 好像也就可以順利的完成文件輸入、編輯的工作,但是大概還不會有那種「Vim 好強好厲害」的感覺,很重要的一個原因就是不知道怎麼在一般模式中編修文件。
新手的最大特色就是,只會在插入模式中編輯文件,但是其實插入模式顧名思意,就是讓人「插入」用的,能夠不要拿來做別的事就不要拿來做別的事,所以文件編輯、在文檔中移動都應該在一般模式中完成:
例如很常用到的剪下、複製、貼上
x
:剪下當前光標上之字符dw
:剪下光標處至那個單字的結尾d$
:剪下光標處至行末
yy
:複製光標所在的那一行y0
:複製光標處到行首
(剪下、複製的指令都可以搭配很多選擇指令,這可以另外寫一篇文章了……)
p
:將剪下或複製下來的文字貼上
還有復原與取消復原
u
:復原ctrl+r
:取消復原
插入的七加一種方法
從一般模式進入插入模式當然不會只有最基本的 i
,下面先介紹五虎將出場:
I
:從行首第一個非空白字元處開始輸入a
:從所在字元後開始輸入A
:從所在行尾開始輸入o
:在此行下方開啟新行並開始輸入O
:在此行上方開啟新行並開始輸入
除了以上五虎之外,還有 s
、S
、c
、C
這幾個指令可以進入插入模式,因為實在比較少用到,以後再慢慢學就好了。
這些功能可不可以用 i
代替,當然可以,像是 A
可以先打 $
移動到行尾再輸入 a
開始打字;o
可以先 $
移到行尾, a
進入插入模式,再按Enter開始在下一行輸入,但是這些「替代方按」都要多打一、兩個指令,這零點零零一毫秒怎麼可以浪費掉阿!
現在 Vim 應該用起來不會卡卡了,但是它的功力還只發揮不到 1 趴,搜尋、取代、環境美化、分割視窗、搭配寫程式用的外掛…… Vim 這個坑真的很大。