FreeBSD
0.前言
以前,距今約三年前,我第一次接觸Unix-like系統,
我是pico的愛好者,因為我那時用的系統是Mandrake,
當時我覺得pico給我的感覺很親切,功能也很強大.
接觸FreeBSD之後,突然發現竟然沒有pico,需要額外安裝pine才能夠取得.
但這也無妨,反正安裝很快...
直到有一天,當我要做大量取代的動作..
這時....pico就....QQ
於是我投向了vi ...去了解他的規則表示式,
一個簡單的小動作 讓繁瑣的工作瞬間解決.
此外..vi 是所有unix-like都有的編輯器...不用額外安裝
讓您在不同系統上也能夠很快的進入狀況.
1.概說
若您之前不曾使用過全屏幕的編輯器,那麼您可能連一些簡單的編輯都有問題.
如此您可能要找一個已經稍微了解vi使用的人來帶領您.
vi是一個屏幕編輯器,這表示了vi幾乎用去了屏幕上的
每一行空間來展示檔案的內容,除了屏幕上的最後一行.
這一行是用來讓您發號命令給vi及vi給你一些相關檔案信息時用的.
其它您必須了解的是vi是一個模式型編輯器.舉例來說:
你能輸入文字或者是執行命令,但是你必須在正確的模式才能夠執行.
您一剛開始編輯一個檔案時,您處在命令模式(command mode).
有一些命令能夠讓您切換到輸入模式(input mode).
然而,只有一個鍵能夠讓您離開輸入模式,那就是鍵盤左上的<Esc>鍵
若您不了解您目前處於何種模式,您可以持續的按,直到vi發出聲音警告您,
如此您已經回到命令模式.當您嘗試做了一些vi所不允許的事情,
正常來說vi會發出"哔"聲(本機操作時)
2.簡易操作
要開始編輯一個檔案您可以這樣做:
$ vi file_name <按enter鍵>
然後輸入 :set verbose mode
然後vi會提醒您:
:set the mode option may never be turn on
注:雖說如此 但對初學者來說 有多些訊息提示總比沒有好
放心 離開vi後就會恢復原先的noverbose mode
如此可以讓vi當你產生錯誤時給予你多一些的訊息並當您猛按<Esc>鍵時
,會在屏幕的最下端顯示如下的訊息,提醒您已在命令模式.
Already in comman mode
注:命令皆需要在命令模式下實行.
△簡易移動命令
h 將光標往左移動一個字符.
j 將光標往下移動一行.
k 將光標往上移動一行.
l 將光標往右移動一個字符.
<方向鍵> 上下左右鍵也應該可以發揮作用.
注:若純粹使用windows 內建的telent方向鍵無法使用..
所以知道hjkl的用處也不錯啦..
△簡易搜尋命令
/text 搜尋text字符串
若今天我要搜尋panda則是 /panda , / 為搜尋命令.
△模式切換
a 在光標後可以新增開始新增
i 在光標前可以開始新增文字
o 在光標的下方新增一行,並可以開始輸入文字.
O 在光標的上方新增一行,並可以開始輸入文字.
<Esc> 當你今天用a,i,o,O進入輸入模式,可以用<Esc>鍵回到命令模式.
注:經個人使用發現模式切換只要記住幾個就好 依照一般輸入習慣,
建議初學者記住a,O就好 (雖然到最後您會在不知不覺中全部記下)
尤其是O看似沒有o好用,但是今天若您想要在最上方新增一行時,
記得O這個指令真是方便阿..
△文字處理命令
復制:
yy 復制游標所在行.
p 在游標所在的下一行貼上所復制的數據.
刪除:
dd 將游標所在行刪除.
x 將光標所在的那個字符刪除.
儲檔:
:w 以原文件名稱儲存檔案.
:w file_name 另存新檔,檔名為file_name
離開:
:q 離開編輯及vi,若您已經編輯過檔案vi會拒絕您離開.
:q! 強制離開vi 不論情況
注: 所謂的一行有可能在屏幕上是很多行(因為屏幕的一行擺放不下)
只要沒有換行符號產生 那就稱之為一行,用光標移動您就會明了.
4.小結
以上這些只是基礎的vi功能,熟悉了這些,您已經會了簡單的文書處理,
已經可以逐漸擺脫pico之類的編輯器,投向vi的懷抱.
過一陣子,當您漸漸了解vi的強大,ㄏㄏ...
0.前言
本篇說明vi命令模式下可執行的命令。
所有要輸入的指令皆用藍色表示。
對於初學者來說,這個部分有點復雜了。
不過呢?以泡泡的經驗來說,用久了你自然會記住某些指令。
不用刻意去記,因為常用的自然會在不知不覺中記住。
(極有可能像我一樣,手指記住了,腦袋記不住..QQ)
注: <control+A> 表示先按住ctrl鍵再按A。(有些命令小寫也可以用)
我都是用小寫。
1.常用移動命令:
<control+A> 往下移動到這個字下次一出現的地方。
<control+B> 光標向上移動一個屏幕。
<control+D> 光標往下移動數行(約12行)。
<control+F> 光標往下移動一個屏幕。
<control+U> 光標往上移動數行(約12行)。
$ 將光標移動到該行尾.
nG 移動到某行,n為行數,若沒有指定則為檔案的最後一行.
L 將光標移動到屏幕的最下一行.
^ 移到該行第一個非空格符.
2.常用檔案命令
<control+G> 顯示檔案的信息。
顯示出目前檔案是否更改,所在行的位置.
file_name: unmodified : line 1 of 380 [0%]
<control+L> 重畫屏幕。
<control+Z> 暫停編輯 回到shell,可用fg回到編輯畫面
<control+^> 切換到最近編輯的檔案.
vi file_name file_name2
用此命命可以在兩個檔案中切換.
3.常用編輯命令
輸入:
I 移動光標道行首的第一個字符並開始接受輸入.
復制:
Y 復制該行到暫存區(用yy也可以)
刪除:
D 從光標目前位置道行尾的所有字符刪除..(用dd也可以)
x 刪除光標所在位置的一個字符
取代:
!shell命令 !後接shell comd ,並以shell cmd 執行結果取代光標該行.
如!panda
會用以下訊息取代原有行的內容
bash: panda: command not found
r 按r後接著按某字符,以取代光標所在的該字符.
~ 切換光標所在字符的大小寫
重復:
n 搜尋之前所搜尋過的字符串 (用/也可以)
若先執行 /BSD
再執行 n 等同於執行 /BSD
若先前沒有搜尋任何東西 會有如下訊息
No previous search pattern.
復原:
U 恢復狀態到光標起初接觸此行的狀態
u 復原前一個動作產生的效果(也就是回復)
其它:
: 執行ex 命令
J 將下一行與此行合並.