您所在的位置:主頁(yè)=>新手學(xué)堂=>TurboLinux 網(wǎng)絡(luò )教室
第二十五課 Vi的進(jìn)入與退出
Vi 的進(jìn)入
用戶(hù)登錄到系統中之后,系統給出提示符“$”。在提示符后鍵入Vi和想要編輯(或建立)的文件名,便可進(jìn)入Vi。
[例1] 鍵入命令:
$ vi example.c
屏幕顯示如下:
~
~
~
~
“ example.c” [New File]
如果只鍵入Vi,而不帶文件名,也可以進(jìn)入Vi。之后在光標處鍵入文件內容,退出Vi時(shí),只需在退出命令后輸入文件名即可。
進(jìn)入Vi之后,首先進(jìn)入的就是命令模式,也就是說(shuō)等待命令輸入而不是文本輸入。這時(shí)輸入的字母都將作為命令來(lái)解釋。光標停在屏幕第一行首位上(用 表示),其余各行行首均有一個(gè)“~”符號,表示該行為空行。最后一行也稱(chēng)狀態(tài)行,顯示出當前正在編輯的文件名以及其狀態(tài)。如本例是[New File],表示example.c是一個(gè)新建的文件。如果example.c文件已在系統中存在,那么輸入上述命令后,則在屏幕上顯示出該文件的內容,并且光標停在第一行的首位,在狀態(tài)行顯示出該文件的文件名、行數和字符數。
[例2] 鍵入命令:
$ vi example.c
然后鍵入:
#include <stdio.h>
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]
注意,在這里我們?yōu)榱斯澥∑鹨?jiàn),屏幕只顯示15行。事實(shí)上,初始的顯示行數與用戶(hù)所用終端有關(guān),一般的CRT終端可顯示25行。在窗口系統中,顯示行數與運行Vi的那個(gè)窗口有關(guān)。然而我們可以對顯示行數進(jìn)行設置。例如,在能顯示25行的CRT終端上,讓Vi只顯示15行。設置的方法將在本節后面介紹。
當用Vi建立一個(gè)新文件時(shí),在進(jìn)入Vi的命令中也可以不給出文件名,當編輯完文件需要保存數據時(shí),再由用戶(hù)指定文件名。
進(jìn)入Vi時(shí),用戶(hù)不僅可以指定一個(gè)待編輯的文件名,而且還有許多附加操作。
如果希望在進(jìn)入Vi之后,光標處于文件中特定的某行上,可在Vi后加上任選項+n,其中n為指定的行數。
[例3] 鍵入命令:
$ vi +5 example1.c
后,屏幕顯示如下:
#include <stdio.h>
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行上。
如果希望在進(jìn)入Vi之后光標處于文件最末行,則只需把命令中附加項“+”后面的數字n省略掉即可。
在進(jìn)入Vi時(shí),除了可以指定一個(gè)光標起始行號之外,還可以在命令中指定一個(gè)模式串,此時(shí)在進(jìn)入Vi后,光標就處于文件中第一個(gè)與指定模式串相匹配的那行上。
[例4] 鍵入命令:
$ vi +/int example1.c
屏幕顯示如下:
#include <stdio.h>
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可以同時(shí)編輯多個(gè)文件,只要在進(jìn)入Vi的命令中寫(xiě)入所要操作的文件即可,還可以使用通配符。
[例5] 鍵入命令:
$ vi *.cat
就可以編輯所有后綴為cat的文件了。當然,您還可以使用shell中內置的模式匹配來(lái)裝載文件,這樣會(huì )更富技巧性。一旦您在命令行中包含了所有的待編輯文件名,就可以在Vi中方便地移來(lái)移去。
退出Vi
當編輯完文件,準備退出Vi返回到shell時(shí),可以使用以下幾種方法之一。
在命令模式中,連按兩次大寫(xiě)字母Z,若當前編輯的文件曾被修改過(guò),則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒(méi)被修改過(guò),則Vi直接退出, 返回到shell。
在末行模式下,輸入命令
:w
Vi保存當前編輯文件,但并不退出,而是繼續等待用戶(hù)輸入命令。在使用w命令時(shí),可以再給編輯文件起一個(gè)新的文件名。
[例6]
:w newfile
此時(shí)Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個(gè)已存在的文件,則Vi在顯示窗口的狀態(tài)行給出提示信息:
File exists (use ! to override)
此時(shí),若用戶(hù)真的希望用文件的當前內容替換newfile中原有內容,可使用命令
:w! newfile
否則可選擇另外的文件名來(lái)保存當前文件。
在末行模式下,輸入命令
:q
系統退出Vi返回到shell。若在用此命令退出Vi時(shí),編輯文件沒(méi)有被保存,則Vi在顯示窗口的最末行顯示如下信息:
No write since last change (use ! to overrides)
提示用戶(hù)該文件被修改后沒(méi)有保存,然后Vi并不退出,繼續等待用戶(hù)命令。若用戶(hù)就是不想保存被修改后的文件而要強行退出Vi時(shí),可使用命令
:q!
Vi放棄所作修改而直接退到shell下。
在末行模式下,輸入命令
:wq
Vi將先保存文件,然后退出Vi返回到shell。
在末行模式下,輸入命令
:x
該命令的功能同命令模式下的ZZ命令功能相同。
▲ 返回頂部▲ 返回上頁(yè)