- 论坛徽章:
- 0
|
常用开发工具教程汇总
Vi 的使用
http://linux.tnc.edu.tw/techdoc/vi.htm
# 版權宣告: 1999 Copyright OLS3 All rights reserved.
# 作者: OLS3 (臥龍小三)
# 本講義僅供台南縣 87 學年度網路管理進階研習班上課之用.
# 學員可保存一份自用, 供日後網管時參考備查.
# 作者保有一切形式的著作權.
# 欲作其它用途者, 需經作者授權同意.
# 未經作者授權同意之前, 請勿轉載刊登.
Vi 的使用
一. 打開你的心:
Vi 已經是 Unix 系統中標準的文字編輯器, 每個網管人員都必須熟悉它, 因為你會在維護系統時常常遇到它.
Vi 對初學者而言, 第一印象總是不好, 覺得它難用. 其實, 大家在用慣了辦公室軟體之後, 再回過頭來用這些未見過的怪物, 難免無法適應, 這是很正常的. 但別忘了, 各位都將是學校中重要網管的人員,您的角色不再是純粹的使用者, 而是一位面對複雜網路的管理者及問題解決者, 你必須能夠親手操控你的系統, 設定你的系統, 調整你的系統, 而這個過程, 你就不得不去面對 Vi.
不要拿 Word 的使用習慣來挑剔 Vi, 它們的作用方向不同, 風格也不同, 一旦您能上手, 也許你會喜歡上它. Vi 是網路管理人員的標準左右手.
So, 打開你的心, 接受會比反彈更有收穫.
二. 開啟檔案, 關閉檔案
vi 檔名
開啟檔案
: 進入命令列的方法
q 離開 (命令列)
wq 存檔然後離開 (命令列)
q! 放棄存檔, 強迫離開 (命令列)
ZZ 存檔然後離開 (不在命令列使用)
:e 檔名 在 Vi 中開啟檔案
三. Vi 的操作模式:
Vi 有二種主要的操作模式, ESC 鍵為單向的切換鍵(由本文輸入模式回到編輯命令模式)
編輯命令模式 : 要 vi 做一些特定目的的動作. 如插入,附加,取代,修改,刪除,移動游標,搜尋等等. 若是存檔等動作, 則需在命令列中下達, 欲切換至命令列, 需先按 :
本文輸入模式 : 在此模式下, 任何字元, 皆被視為輸入的資料.
一開始進入 Vi 之後, 即進入編輯命令模式, 你輸入的每一個字元, 皆被預視為一個指令. 有效的指令會被接受, 若是無效的指令, 會產生 beep beep 聲, 以示警告.
若想做輸入的動作, 必須切換為本文輸入模式, 切換的方法, 只要單按一個特殊意義的字元鍵即可, 如下所示:
按 i 或 I 插入狀態
按 a 或 A 附加狀態
按 R 取代狀態
R 會進行連續字元取代
按 s 或 S 刪除一個字元;刪除游標所在那一列
按 cw, c2b, c$, c0 修改狀態
按 o 或 O 新增空白列
你不必一下子全用上, 只要會 i, a, o 這個三個模式即可勝任愉快, 因為大部份時候, 你也只用這三個.
OK, 現在你可以試著在本文輸入模式下, 鍵入一些資料看看. 然後, 按 ESC 切換回編輯命令模式.
四. 移動游標:
Vi 為了適用於各種不同的終端機模式, 因此以字鍵的方式來操控游標.
k j h l 上 下 左 右
Enter 換列
w b 往前一個 word ; 倒退一個 word
0 $ 至該列開頭 ; 至該列尾端
+ - 往下一列; 往上一列
請記住一個要訣:
在 Vi 中, 大部份的命令都可以在其前面加上數字, 該數字表示重覆該命令的次數.
例如: 8l 表示往右移動 8 個字元, 3w 表示往前移動三個 word, 2b 表示倒退 2 個 word
註: word 的定義, 連續英數字元形成一個 word, 而其它特殊符號則每一個字元便是一個 word(除非連續特殊字元), 例如: --classify 中含有 2 個 word, 一個是 -- ; 一個是 classify
而 -x, 則有 3 個 word.
在特殊的終端機模式下, 方向鍵也是可以使用的. 如 linux 或 vt100.
其實大部份時候, 你仍可以保有使用方向鍵的習慣. 但大概只有 local 下才能使用 PgUp , PgDn, End, Home 等鍵喔!
不過, 若你所使用的終端機模式不支援方向鍵, 那麼上表中的按鍵, 就相當重要了.
五. 捲頁:
^f 往下一頁 (forward)
^b 往上一頁 (before)
^d 往下半個螢幕(down)
^u 往上半個螢幕(up)
六. 跳列:
你可以指定跳至某一列位置. 跳動之前, 先查看一下目前所在列數是多少.
^g 可以顯示目前的位置, 如: "ls.txt" line 53 of 264 --20%-- col 16-23
上面表示, 目前是在第 53 列, 全部共有 264 列, 佔該檔百分之20的位置, 目前的游標, 實際是在第23行, 但只算成第16行, 因為中間有使用 tab 鍵.
80G 或 80gg 跳至第 80 列
G 跳至檔尾
gg 跳至檔頭
七. 刪除: (但不會進入本文輸入模式)
x 刪除一個字元
dd 刪除一行
r 取代一個字元
以上皆針對游標目前的所在位置產生作用.
還有 dw, db, de, d0, d$ 等命令, 但你不須一下子全用上. 上表中這三個夠用了.
記住一個要訣: Vi 的命令繁多, 但你真正用上手的不必多, 而且這些也就夠了.
八. undo (回復動作):
若你對上一個動作反悔了, 可以使用 undo 的功能:
u 取消上一個動作所產生的改變
U 取消游標所在那一列所有的改變
:e! 取消所有的改變, 回復至未修改之前
九. 關鍵字搜尋/取代:
/ 關鍵字 往下搜尋關鍵字
? 關鍵字 往上搜尋關鍵字
n 重覆搜尋命令(不管往下或往上)
N 和 n 相反方向
cw字串 以該字串取代原有的關鍵字
n. 繼續取代該字串的動作
%s/目標/取代/g 將目標字串全換成取代字串
十. 選取、複製與搬移:
Y 或 yy 選取游標所在那一列
5Y 或 5yy 選取游標列所在共5列
(5 只是一個例子, 可改用其它數字)
p 將選取的內容, 複製至游標之後
P 將選取的內容, 複製至游標之前
cw, x, dd 等刪除命令 會將被刪除的內容放入 buffer 中, 配合 p 或 P 即可做出搬移的效果.
十一. 暫時跳出 Vi:
在編輯過程中, 你可能想要執行其它命令, 方法如下:
:! 命令 執行該令命
:sh 暫時跳出 Vi, 欲回 Vi 按 ^d 或 exit
十二. 習作:
十三. 參考書目:
Vi 的所有功能足足可以寫一本書, 也真的有人寫出來喔!
O'REILLY 有一本書 Learning the vi , 專門在談 Vi, 各位若有興趣的話, 不妨參考看看.
O'REILLY 網址: http://www.oreilly.com/
亞馬遜書店網址: http://www.amazon.com/ |
|