作為一個軟體工程師,我們花在文字編輯器上的時間一定佔了一定的比例, 更精通熟悉我們使用的編輯器的話,開發的效率可以提升很多,今天就來分享一些我蠻常會用到的vim的功能~
Introduction
Vim是一個modal editor,可以切換在各個模式之間,一開始時是在normal mode,今天要介紹的功能, 都是在normal mode下操作的,按i或a可以進入insert mode,按esc即可以退回normal mode。
我通常比較常使用a,因為當把指標移到最後時,用a可以直接在最後面開始輸入。
Navigation
上下左右
最基本的就是k、j、h、l分別對應到上下左右
翻頁
覺得上下按著這樣太慢,可以用Ctrl-U、Ctrl-D來上下翻頁
行首、行末
0指標會跳掉當行的最前面,$則是最後面。
字的跳躍
w可以跳到下一個字的開頭,e則是跳到下一個字的結尾,b則是往前跳到前一個字的開頭。
() [] {} 跳躍
指標找到了一對括號的其中一個,想要到另一個的話可以用%。
搜尋跳躍
將指標放在字上,按#,就會自動幫你搜尋,並跳到相同的字上,效果相當於用/搜尋再按n。

Deletion
刪除一個字母
x,可以刪除指標上的那個字。
刪除一行
dd,刪除指標所在的那一行。
刪掉指標後的所有字
D,常用狀況像是複製了一行method,然後刪掉method name跟paramters再打新的。如下圖反白部分: 
d + {navigation key}
搭配上面提到的各種navigation的方法,比如說:
dw: 刪掉一個字,從指標到字的尾端,像是下圖反白的部分。![dw]()
d%: 刪掉整個(…)、[…]或{…}
di
diw:跟dw也是刪掉一個字,但是可以刪掉整個字,效果就相當於先按b讓指標回到字首再dw。![diw]()
di"ordi(ordi[ordi{:刪掉”“內、()、[]及{}的所有字。di(ordi)即可刪掉()中function的paramter![di(]()
di"則是刪掉雙引號中間的所有字,留下雙引號![di"]()
da
da的話跟上述di都ㄧ樣,只不過會將引號或括號都一併刪除。
d 換成 c
將上面的d都換成c,可以有一樣的功能,差別就是會直接進入insert mode,所以可以省去一個按i的時間。 如cw、ciw、ci"、ca(。
Copy and Paste
複製一行
yy複製一行,p貼上
y + {navigation key}
y一樣可以搭配上面提到的navigation key來複製
yw,yiw: 複製一個字yi": 複製雙引號內的字y%: 複製成對括號內的字
稍微簡單地紀錄一下及分享,希望能有幫助~~ 掰掰~👋




Comments powered by Disqus.