vi 的一些簡單命令(轉)

BSDLite發表於2007-08-12
vi 的一些簡單命令(轉)[@more@]vi 屬於使用UNIX和Linux系統的一個基本功。它速度快,比所有需要滑鼠的編輯器都快。現在Linux裡的vi實際上是改進版的vim,用一個alias設成了vi。也就是說,使用時vi和vim沒區別。

vi 有兩個狀態:編輯狀態和輸入狀態。編輯狀態時,你可以對檔案進行刪除字、行的操作,也可進行調整格式,存檔等操作。輸入狀態就是敲字。下面舉例說明它的使用。比如要編 hello.c

vi hello.c

你可以先簡單地敲幾行,按a到輸入狀態,

#include

void main() {
printf("Hello world! ");
}

然後,按Esc鍵切換到編輯狀態。再按:w存檔。冒號表示要輸入命令,w就是寫盤(write)。
如果要回到輸入狀態,先把滑鼠調整到要輸入的位置,然後按i,就進入輸入狀態了(input)。按a也可以,它會在滑鼠的下一位置輸入(append,“加”的意思),按o也可以,它會自動加一個新行。

小結一下:i 或者a或者o 切換到輸入狀態,Esc切換到編輯狀態。:w 存檔。

處在輸入狀態時,透過鍵盤的輸入和刪除操作,與其他的編輯器沒區別,Backspace鍵和Del鍵都可以用來刪除字元,方向鍵調整滑鼠的位置,等等。

在編輯狀態時,也可用鍵盤上的j,k,h,l鍵來上下左右移動滑鼠(h=左,l=右,j=下,k=上),當然新版的vim,用鍵盤上的四個方向鍵也可以。我們再輸入兩行,先把滑鼠移動到檔案末尾,按i進入輸入狀態,輸入

// this is a comment,
nothing elsee

然後按Esc切換進編輯狀態。注意到,else多了一個e,需要刪除。把滑鼠移動到兩個e的中間,按x,後邊那個e就刪掉了。現在按u,那個e又undo回來了。再按x把它刪掉。

我們還注意到,第二個解說行不合C語言的規範,要把第二行跟第一行接上就好了。好,把滑鼠移動到第一個解說行,按大寫的J,我們注意到,兩行接上了,

// this is a comment, nothing else

這個大寫的J,就是join的意思。當然了,整個這個解說行無意義,應該刪除,方法是:把滑鼠移動到解說行,按dd,這行就刪除了。再按p,這行又回來了。再按dd刪除它。

現在按:wq,存檔並退出vi。

小結一下:編輯狀態下,hjkl四個鍵移動滑鼠,x刪除一個字母,u是undo,dd刪除一行,p把剛刪的東西恢復回來,J把下邊的一行接上,:q退出。

如果要刪除100行怎麼辦? 100dd。編輯了一陣,結果發覺全不對,想恢復到檔案剛開始的狀態怎麼辦?:e。能不能不退出vi直接編輯另外一個檔案?可以,:vi another.c。

如果需要了解更多的命令,需要在網上找找有關的教程。總之,熟能生巧。

[ 本帖最後由 8o8o8 於 2006-3-28 23:05 編輯 ]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-948928/,如需轉載,請註明出處,否則將追究法律責任。