歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux教程(25)-Vi的進入與退出

  Vi 的進入

用戶登錄到系統中之後,系統給出提示符“$”。在提示符後鍵入Vi和想要編輯(或建立)的文件名,便可進入Vi。

[例1] 鍵入命令:

$ vi example.c

屏幕顯示如下:

 

 

“ example.c” [New File]

如果只鍵入Vi,而不帶文件名,也可以進入Vi。之後在光標處鍵入文件內容,退出Vi時,只需在退出命令後輸入文件名即可。

進入Vi之後,首先進入的就是命令模式,也就是說等待命令輸入而不是文本輸入。這時輸入的字母都將作為命令來解釋。光標停在屏幕第一行首位上(用 表示),其余各行行首均有一個“~”符號,表示該行為空行。最後一行也稱狀態行,顯示出當前正在編輯的文件名以及其狀態。如本例是[New File],表示example.c是一個新建的文件。如果example.c文件已在系統中存在,那麼輸入上述命令後,則在屏幕上顯示出該文件的內容,並且光標停在第一行的首位,在狀態行顯示出該文件的文件名、行數和字符數。

[例2] 鍵入命令:

$ vi example.c

然後鍵入:

#include

main ( )

{ int k ;

for ( k=0 ; k<3 ; k++) add( );

}

add( )

{ static int x=0;

x++ ;

printf(“x = %d\n”, x);

}

~

~

~

~

“ example.c” [ New File]

注意,在這裡我們為了節省篇幅起見,屏幕只顯示15行。事實上,初始的顯示行數與用戶所用終端有關,一般的CRT終端可顯示25行。在窗口系統中,顯示行數與運行Vi的那個窗口有關。然而我們可以對顯示行數進行設置。例如,在能顯示25行的CRT終端上,讓Vi只顯示15行。設置的方法將在本節後面介紹。

當用Vi建立一個新文件時,在進入Vi的命令中也可以不給出文件名,當編輯完文件需要保存數據時,再由用戶指定文件名。

進入Vi時,用戶不僅可以指定一個待編輯的文件名,而且還有許多附加操作。

如果希望在進入Vi之後,光標處於文件中特定的某行上,可在Vi後加上任選項+n,其中n為指定的行數。

[例3] 鍵入命令:

$ vi +5 example1.c

後,屏幕顯示如下:

#include

main ( )

{ int k ;

for ( k=0 ; k<3 ; k++) add( );

}

add( )

{ static int x=0;

x++ ;

printf(“x = %d\n”, x);

}

~

~

~

~

~

“ example.c” 12 lines, 125 characters

光標將位於文件example1.c中的第5行上。

如果希望在進入Vi之後光標處於文件最末行,則只需把命令中附加項“+”後面的數字n省略掉即可。

在進入Vi時,除了可以指定一個光標起始行號之外,還可以在命令中指定一個模式串,此時在進入Vi後,光標就處於文件中第一個與指定模式串相匹配的那行上。

[例4] 鍵入命令:

$ vi +/int example1.c

屏幕顯示如下:

#include

main ( )

{ int k ;

for ( k=0 ; k<3 ; k++) add( );

}

add( )

{ static int x=0;

x++ ;

printf(“x = %d\n”, x);

}

~

~

~

~

~

“ example.c” 12 lines, 125 characters

光標將位於文件example1.c中的第3行上。

使用Vi可以同時編輯多個文件,只要在進入Vi的命令中寫入所要操作的文件即可,還可以使用通配符。

[例5] 鍵入命令:

$ vi *.cat

就可以編輯所有後綴為cat的文件了。當然,您還可以使用shell中內置的模式匹配來裝載文件,這樣會更富技巧性。一旦您在命令行中包含了所有的待編輯文件名,就可以在Vi中方便地移來移去。

退出Vi

當編輯完文件,准備退出Vi返回到shell時,可以使用以下幾種方法之一。

在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件後退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出, 返回到shell。

在末行模式下,輸入命令

:w

Vi保存當前編輯文件,但並不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。

[例6]

:w newfile

此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:

File exists (use ! to override)

此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令

:w! newfile

否則可選擇另外的文件名來保存當前文件。

在末行模式下,輸入命令




:q

系統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:

No write since last change (use ! to overrides)

提示用戶該文件被修改後沒有保存,然後Vi並不退出,繼續等待用戶命令。若用戶就是不想保存被修改後的文件而要強行退出Vi時,可使用命令

:q!

Vi放棄所作修改而直接退到shell下。

在末行模式下,輸入命令

:wq

Vi將先保存文件,然後退出Vi返回到shell。

在末行模式下,輸入命令

:x

該命令的功能同命令模式下的ZZ命令功能相同。



Copyright © Linux教程網 All Rights Reserved