vi (vim) 常用指令筆記  

2008年3月17日 星期一 , Posted by 曾easy in


游標移動

0 是數目字 0 而不是英文字母 o。或是 Home 鍵,移至行首,(含空白字元)。
^ 移至行首第一個非空白字元,注意,要 Shift 鍵。
$ 移至行尾,或 End 鍵。要 Shift 鍵。
G 移至檔尾(全文最後一行的第一個非空白字元處)
gg 移至檔首(全文第一行之第一個非空白字元處)。

在規則表示式(regular expression)中,^ 是匹配行首,$ 是匹配行尾。

w 移至次一個字(word)字首。當然是指英文單字。
W 同上,但會忽略一些標點符號。
e 移至後一個字字尾。
E 同上,但會忽略一些標點符號。
b 移至前一個字字首。
B 同上,但會忽略一些標點符號。
H 移至螢幕頂第一個非空白字元。
M 移至螢幕中間第一個非空白字元。
L 移至螢幕底第一個非空白字元。這和 PageDownPageUp 不一樣,內文內容並未動,只是游標在動而已。


:n 移至第 n 行行首。或 nG。
) 移至下一個句子(sentence)首。
( 移至上一個句子(sentence)首。sentence(句子)是以 . ! ? 為區格。
} 移至下一個段落(paragraph)首。
{ 移至上一個段落(paragraph)首。paragraph(段落)是以空白行為區格。
% 這是匹配 {},[],() 用的,例如游標在 { 上只要按 %,就會跑到相匹配的 } 上。

▆ macro

(a可以用a~z任一英文字母)
qa
... recording ...
q
@a (執行macro)

▆ search

/search pttern
v(移動指標 選取完想要的字後,按y, 此時文字被複製到register 0)
/Ctrl+r +0

▆ replace

為每行行首加上 printf ("<td>,行尾加上</td>\n");
s/^.*$/printf ("<td>&<\/td>\\n");/g
^.*$為正規表示式,代表每一行。&代表前面找到的字串,此例即為每一行
.





Reference from: http://edt1023.sayya.org/vim/node1.html

This entry was posted on 2008年3月17日 星期一 at 上午10:57 and is filed under . You can follow any responses to this entry through the comments feed .

2 意見

匿名  

@@ 可執行上次執行的macro

2008年5月19日 凌晨12:43
匿名  

@@ 可執行上次執行的macro !

2008年5月19日 凌晨12:46

張貼留言