戀妳終身永不悔 撰寫於文章 <3XcN3T$GTR@bbs.ee.ntu.edu.tw>...
>※ 引述《baroque.bbs@english.nccu.edu.tw
(忙....)》之銘言:
>: as title...
>: please
>vi我都是不得已才用的,可以的話都用joe.
>例如用開機片進Linux,必須改/etc下的一些檔案.這時不得已才用vi.
>在這種需求下,我認為以下七個指令就夠了:
>i,d,x,:,w,q及Esc鍵
>
(以下內容可以從 http://go.to/study-area
得到﹕)
文書編輯
要管理好Linux系統﹐少不了要對設定檔案進行編輯﹐如果您用慣了Microsoft
Word或
Corel Wordperfect的話﹐除了Xwindows裡面的編輯程式(如xemacs)用起來尚可應付
外﹐在Linux的文字模式下﹐會覺得檔案編輯程式都沒有Windows程式那麼方便﹐雖然
Linux下面也有好多種文書編輯器﹐例如﹕ed、vi、pico、joe、emacs等。下面我要介
紹的歷時悠久和功能強大的 vi 文書編輯器﹕
讓我們建立一個新檔案叫test.vi﹐我們可以輸入
vi test.vi
當你進入後﹐可能在一輪亂按亂按之後才發現可以輸入文字﹐但要刪除或增加文字卻不
知道如何下手﹐開始會覺得非常恐懼的﹐當初我打開vi之後﹐都不知道怎麼離開呢﹗但
只要知道了vi的基本命令﹐其實用起來還算得心應手的﹐只是需要慢慢發現其功能而
已。
首先﹐先告訴您vi的救命鍵﹕Esc。如果您亂按之後迷失了方向﹐可以連續地多按幾下
Esc鍵﹐您就會回到vi的命令模式了。vi的模式分兩種﹕一是編輯模式﹐也就是對檔案
內容進行編輯﹐而另一個就是命令模式了﹐您可以在命令模式執行諸如﹕插入、刪除、
複製、粘貼、跳行、離開、保存檔案、等動作。
下面先讓我們按幾下 Esc﹐或許您會聽到喇叭會發出BB聲﹐但這是沒關係的﹐請放心好
了。在 vi 裡面﹐能聽到這個聲音反而心裡比較定呢。
接著﹐按‘i’鍵﹐您會看到螢幕下端會出現“-- INSERT --”的提示﹐您就知道您現
在可以插入文字了﹐現在請你隨便寫幾行字.
然後再按Esc。
按方向鍵往上跳一行﹐然後將游標移到中間位置﹐按幾下‘x’鍵﹐您會發現在游標後
面的字會被刪除掉﹔如果按‘X(大寫)’﹐你會發現﹐在游標前面的字會消失掉。
現在請您按‘u’鍵﹐您會看見剛才刪除的字又回來了﹐原來這是undo的意思。
接著﹐請按兩下‘y’鍵﹐然後按‘p’鍵﹐您會看到游標所在的那行會被複製出來了。
這裡y是yank(複製)的意思﹐而p則是past(貼上)的意思。
現在請將鼠標移到第一行﹐然後按‘2’接著按兩次‘y’﹐然後再按‘p’你會發現會
在鼠標所在的行和下一行被複製了﹐並且出現在游標下面的新行裡。這裡的2+yy是複製
游標所在算起兩行﹐如果將數字改成3則複製三行﹐如此類推。
好了﹐現在請多按幾下p產生多行文字﹐然後輸入﹕
:set nu
您會發現vi會列出各行的行數。這裡的“﹕”是一個命令提示﹐‘set’是用來設定vi
環境的﹐‘nu’是number的意思。如果您要取消行號﹐可以輸入﹕‘:set
nonu’。
讓我們保留行號顯示模式﹐再請您將游標移到第一行﹐然後按‘3’接著按兩下‘d’﹐
您會發現頂端的三行會被刪除掉了。dd就是delete的意思。
現在請您移動游標到行的中間部份﹐然後按‘i’進入插入模式﹐再按Enter將後面的文
字打斷(break)到下一行。請問﹐您知道除了按‘u’來undo之外﹐怎麼將之重新接為一
行呢﹖哈哈﹐無論您用x或X還是Backspace或del鍵﹐都不作用哦~~~
不過﹐如果您按
Esc之後﹐再按‘J(大寫)’就可以將鼠標所在的下一行接(Join)上來了。
好了﹐如果您已經滿意您的修改了﹐那麼按Esc退回命令模式﹐然後輸入﹕
:wq
這裡的‘w’是write(寫入檔案)的意思﹐‘q’是quit(退出程式)的意思。因為您在vi
所做的全部修改﹐其實只在buffer中進行而已﹐並不真正影響到原來的內容﹐直到您按
w為止。如果我們修改了一個當案﹐但後來發現﹐還是不做修改為好﹐也就是您不想更
動原有內容而退出vi的話﹐可以單純按‘q’離開麼﹖答案是否定的﹐這時候您就要在
q 後面加上一個‘﹗’﹐這是強制執行的意思﹐這樣您就可以強行離開vi了。
這裡略略介紹的﹐只是vi其中很少一部分功能﹐其他的要您自己去發現了。不過﹐光靠
以上這幾個基本命令﹐相信﹐您也可以修改自己的檔案了﹐只不過﹐效率可能沒vi高手
那麼快而已(反正您也比較少用vi來寫文章吧﹖)。
有時候﹐我們因為某種意外﹐vi
被不正常的結束掉﹐如果您下次繼續編輯相同的檔案
的話﹐您會看到 vi 的警告﹐告知您可以用 ‘: recover’命令將上次沒完成的檔案叫
出來。如果您不想再見到這個警告﹐您可以將這個檔案的swp檔案刪除掉﹕比如該檔案
叫test.txt﹐那麼這個swp檔案就會叫﹕‘.test.txt.swp’(要注意前面有一個
“.”)。
另外﹐我們還可以使用 vim 來代替 vi 進行文書編輯﹐vim 是 vi
的增強版。