http://nmc.nchu.edu.tw/linux/vi.htm
vi是全銀幕文字編輯器。
不是僅有,也不是最好用﹐卻是唯一存在所有UNIX版本中之Editor。
三種模式:命令模式﹑插入(輸入)模式﹑last line(延伸命令)模式。
模式切換
啟動vi編輯器 --> 命令模式
命令模式 +( i, a, o, O,) --> 插入模式
命令模式 + ”:”--> last line模式
last line模式 + 任何指令or KeyStroke --> 命令模式
插入模式 + “Esc”--> 命命模式
vi啟動:
$ vi filename
命令模式:
命令模式基本指令可分為游標移動﹑插入文字﹑刪除文字﹑修改文字等幾類﹐熟悉各種常用指令﹐並善加組合變化﹐可使文字編輯的工作變得快速而有效率。
last line模式:
last line模式之指令一般用於輔助命令模式指令之不足﹐主要指令如下:
(我們可以將last line模式指令視為“:”開頭的命令模式指令)
:q 不儲存檔案內容並離開vi(未變更檔案內容)
:q! 不儲存檔案內容並離開vi(檔案內容已被更動)
:wq <filename> 儲存檔案內容並離開vi
:w <filename> 儲存檔案
:= 顯示游標目前所在之行數
:.= 顯示檔案全部總行數
:n,ms/str1/str2/opt從第n行搜尋至第m行,並將所找到之字串”str1”取代為”str2”。opt=g全部取代,opt=c確認再取代
:r filename將外部檔案引用(paste)至游標所在位置之後
:e filename編輯另一檔案
:! Command 執行SHELL command後返回。
命令模式指令概述:
游標移動指令
k
往上移一格
j
往下移一格
h
往左移一格
l
往右移一格
w
往下移一個字(word)
b
往上移一個字(word)
1 or 0
移至游標所在行首
$
移至游標所在行首
n G
移至第n行
G
移至檔尾
插入本文
a
在游標後插入文字(進入插入模式)
A
在行尾插入文字(進入插入模式)
I
在游標前插入文字(進入插入模式)
I
在本行前插入文字(進入插入模式)
o
在本行之下開新一行並輸入
O
在本行之上開新一行並輸入
<Ctrl> v
輸入特殊字元(在插入模式下)
編輯指令
nyy
copy n行資料放置緩衝區中
y+游標移動指令
copy游標移動範圍之資料至緩衝區中(e.g.:y3w: copy游標之後三個字)
p
將緩衝區之資料copy至目前游標所在
nx
刪除游標之後n個字元
ndd
往下刪n行
d+游標移動指令
copy刪除游標移動範圍之資料(e.g.:dw刪一個字)
其他
/字串<CR>
尋找字串所在位置(往下)
?字串<CR>
尋找字串所在位置(往上)
u
放棄上一個指令動作
.
重複上一個本文更改指令