2014年2月19日 星期三

vi 指令

一般模式(一打開vi的模式)H 移至視窗的第一列。(或gg)
L  移至視窗的最後一列。
G 移至該檔案的最後一列。
0  移至該行之首
$  移至該行之末。
<Ctrl><f>   視窗往下捲一頁。
<Ctrl><b>   視窗往上捲一頁。

 x    刪除游標所在字元。
dd  刪除游標所在的列。2dd 刪除2行
yy  複製游標所在的那一行。2yy 複製2行
p   為將已複製的資料在游標下一行貼上。
.    繼續動作
u   undo

m+a                    mark a
`+a(backtick a)    switch to a

shift+'+a             start buffer a
yy
shift+'+a             start buffer a
p


搜尋
:/字串   往游標之後尋找該字串。
:?字串   往游標之前尋找該字串。
n      往下繼續尋找下一個相同的字串。
N      往上繼續尋找下一個相同的字串。
  
編輯模式
c3l                   change 3 letters
cw                   change word
i (insert)          從游標所在位置前面開始插入資料,游標後的資料隨新增資料向後移動。
a (append)      從游標所在位置後面開始新增資料,游標後的資料隨新增資料向後移動。
A                     從游標所在列最後面的地方開始新增資料。
I                      從游標所在列的第一個非空白字元前面開始插入資料。
o (open)         在游標所在列下新增一列並進入輸入模式。
O                    在游標所在列上方新增一列並進入輸入模式。
[ESC]             結束編輯模式。



指令列模式
:    help 
:    tutor
:w  存檔(write)
:q  離開
:q!  強制離開不儲存檔案
:wq  存檔後離開
:w!   『唯讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權限有關
:e file 開啟新檔
:e#     切換檔案(或直接按control ^)
:! ls   執行外部ls指令

visual mode
v  start visual mode
y  複製標示區內容
p  貼上標示區內容
d  刪除標示區內容