2013年7月28日 星期日

Vim Note

很多強者同學都說vim好用或是資工系(所)不會用vim很丟臉,顆顆,老實說用了不少IDE,感覺只要用的習慣就好啦!
雖然說很多IDE很厲害,不過很多時候還是避免不了要用到vim,話說我的vim基本功實在很差,每次用vim編輯的時候都很像智障,該是來筆記的時候惹!!
1. vim一開始最需要學習的就是怎麼去移動游標,之前只會用方向鍵實在有點丟臉!
常用游標移動方式
h 在一般模式下,游標往左邊的方向移動一格,如果在前面加上數字(ex:5h)的話,就會往左5格
j 在一般模式下,游標往下邊的方向移動一格,如果在前面加上數字(ex:5h)的話,就會往下5格
k 在一般模式下,游標往上邊的方向移動一格,如果在前面加上數字(ex:5h)的話,就會往上5格
l 在一般模式下,游標往右邊的方向移動一格,如果在前面加上數字(ex:5h)的話,就會往右5格
gg 把游標一到第一行
G 把游標一到最後一行
0 or Home 把游標移到這一行的最前面的字元
$ or End 把游標移到這一行的最後面的字元
[Ctrl]+f 等同於Page down
[Ctrl]+b 等同於Page up
2. 在IDE中常會用到搜尋的功能,在vim中搜尋我覺得比IDE還要方便(不用離開鍵盤)
常用的搜尋方法
/word 向游標之下尋找一個名稱為 word 的字串
?word 向游標之上尋找一個名稱為 word 的字串
n 小n代表/word或?word搜尋完後,繼續往下搜尋
N 大N代表/word或?word搜尋完後,繼續往上搜尋
:set hlsearch hlsearch(high light search)搜尋前先set好後,/word或?word會把所有關鍵字high light
3. 最讓我驚訝的部份,就是vim可以用指令把所有的word1變成word2
常用的取代指令
:n1,n2s/word1/word2/g 從n1行到n2行間把找到的word1取代成word2(ex::100,200s/word1/word2/g)
:1,$s/word1/word2/g 從第1行到最後一行間把找到的word1取代成word2(ex::1,$s/word1/word2/g)
:1,$s/word1/word2/gc 功能同上(ex::1,$s/word1/word2/gc),但是取代前會給使用者確認是否取代
4. 刪除,複製,貼上應該是除了怎麼移動游標之外最重要的部份吧!畢竟code總是貼來貼去
常用的刪除,複製,貼上
x 向後刪除一個字元
X 向前刪除一個字元
dd 刪除一整行(超好用)
ndd n代表數字(ex:5dd),代表刪除游標後n整行
yy 複製游標所在的那一行(超好用)
nyy n代表數字(ex:5yy),代表複製游標厚n行
p 用yy或nyy複製後,從游標下一行貼上
P 用yy或nyy複製後,從游標上一行貼上
u 復原前一次動作
[Ctrl]+r 重作上一個動作
5. 從一般模式進入編輯模式,不能只會用i
常用的插入模式
i 從目前所在的游標處開始插入
I 從目前所在行的第一個非空白字元開始插入(從所在行的頭開始插入)
a 從目前游標所在的下一個字元開始插入
A 從目前游標所在的行最後一個字元開使插入
o 在該行的下一行開始插入
O 在該行的上一行開始插入
6. 區塊地選擇,搭配區塊複製,自動排版,多行註解使用
常用的區塊選擇
v 以字元為單位,游標走到哪裡,區塊就選到哪裡
V 以行為單位,游標走到哪裡,行區塊就選到哪裡
[Ctrl]+v 長方形區塊選擇,常用在多行註解
y 把反白選取的區塊給複製起來
d 把反白選取的區塊給刪除掉
7. 一些小技巧
常用的小技巧
多行註解 [Ctrl]+v(長方形區塊選擇)+選擇區塊+I+註解字元(ex://)+Esc
多行註解消除 [Ctrl]+v(長方形區塊選擇)+選擇區塊+l+x
程式碼整頁排版 gg+v+G+=
:!command 暫時離開vim到指令列模式下執行 command 的顯示結果(ex::!ls)
基本上上表都是參考鳥哥來的,濃縮整理了一下我需要的一些vim指令XD!!

沒有留言:

張貼留言