?? 命令大集合.htm
字號:
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” 12 lines, 125 characters
<br>
<br>光標將位于文件example1.c中的第5行上。
<br>
<br>如果希望在進入Vi之后光標處于文件最末行,則只需把命令中附加項“+”后面的數字n省略掉即可。
<br>
<br>
<br>在進入Vi時,除了可以指定一個光標起始行號之外,還可以在命令中指定一個模式串,此時在進入Vi后,光標就處于文件中第一個與指定模式串相匹配的那行上。
<br>
<br>[例4] 鍵入命令:
<br>
<br>$ vi +/int example1.c
<br>
<br>屏幕顯示如下:
<br>
<br>#include
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” 12 lines, 125 characters
<br>
<br>光標將位于文件example1.c中的第3行上。
<br>
<br>
<br>使用Vi可以同時編輯多個文件,只要在進入Vi的命令中寫入所要操作的文件即可,還可以使用通配符。
<br>
<br>[例5] 鍵入命令:
<br>
<br>$ vi *.cat
<br>
<br>就可以編輯所有后綴為cat的文件了。當然,您還可以使用shell中內置的模式匹配來裝載文件,這樣會更富技巧性。一旦您在命令行中包含了所有的待編輯文件名,就可以在Vi中方便地移來移去。
<br>
<br>退出Vi
<br>
<br>當編輯完文件,準備退出Vi返回到shell時,可以使用以下幾種方法之一。
<br>
<br>
<br>在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出, 返回到shell。
<br>
<br>
<br>在末行模式下,輸入命令
<br>
<br>:w
<br>
<br>Vi保存當前編輯文件,但并不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。
<br>
<br>
<br>[例6]
<br>
<br>:w newfile
<br>
<br>此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:
<br>
<br>File exists (use ! to override)
<br>
<br>此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令
<br>
<br>:w! newfile
<br>
<br>否則可選擇另外的文件名來保存當前文件。
<br>
<br>
<br>在末行模式下,輸入命令
<br>
<br>:q
<br>
<br>系統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:
<br>
<br>No write since last change (use ! to overrides)
<br>
<br>提示用戶該文件被修改后沒有保存,然后Vi并不退出,繼續等待用戶命令。若用戶就是不想保存被修改后的文件而要強行退出Vi時,可使用命令
<br>
<br>:q!
<br>
<br>Vi放棄所作修改而直接退到shell下。
<br>
<br>
<br>在末行模式下,輸入命令
<br>
<br>:wq
<br>
<br>Vi將先保存文件,然后退出Vi返回到shell。
<br>
<br>
<br>在末行模式下,輸入命令
<br>
<br>
<br>
<br>該命令的功能同命令模式下的ZZ命令功能相同。[/b]
<br>_________________
<br>碧軒
<br>人之初,性本色!
<br><a href="http://www.ourlinux.net/">http://www.ourlinux.net/</a>
<br><a href="http://yum.ourlinux.net/">http://yum.ourlinux.net/</a>
<br><a href="http://apt.ourlinux.net/">http://apt.ourlinux.net/</a>
<br><a href="http://download.ourlinux.net/">http://download.ourlinux.net/</a>
<br>游戲交易:<a href="http://www.0579tt.com/">http://www.0579tt.com/</a>
<br>
<br>最后進行編輯的是 bixuan on 2003-04-12, 9:46am, 總計第 1 次編輯
<br>
<br>返回頁首
<br>
<br>
<br>bixuan
<br>公社特別嘉賓
<br>
<br>
<br>
<br>注冊: Nov 23, 2002
<br>文章: 1994
<br>位置: 浙江金華
<br> 發表于: 2003-04-12, 9:08am 發表主題:
<br>
<br>--------------------------------------------------------------------------------
<br>
<br>Vi中的行號
<br>
<br>Vi中的許多命令都要用到行號及行數等數值。若編輯的文件較大時,自己去數是非常不方便的。為此Vi提供了給文本加行號的功能。這些行號顯示在屏幕的左邊,而相應行的內容則顯示在行號之后。
<br>
<br>使用的命令為:在末行方式下輸入命令:
<br>
<br>:set number
<br>
<br>需要說明的是,這里加的行號只是顯示給用戶看的,它們并不是文件內容的一部分。
<br>
<br>在一個較大的文件中,用戶可能需要了解光標當前行是哪一行,在文件中處于什么位置,可在命令模式下用組合鍵<Ctrl+g>,此時Vi會在顯示窗口的最后一行顯示出相應信息。該命令可以在任何時候使用。
<br>
<br>[例7]
<br>
<br>#include <stdio.h>
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” [Modified] lines 4 of 10 --40%-- col 11
<br>
<br>在末行方式下,我們可以輸入命令nu(單詞number的縮寫)來獲得光標當前行的行號與該行內容。
<br>
<br>光標移動操作
<br>
<br>全屏幕文本編輯器中,光標的移動操作無疑是最經常使用的操作了。用戶只有熟練地使用移動光標的這些命令,才能迅速準確地到達所期望的位置處進行編輯。
<br>
<br>Vi中的光標移動既可以在命令模式下,也可以在文本輸入模式下,但操作的方法不盡相同。
<br>
<br>在文本輸入模式下,可直接使用鍵盤上的四個方向鍵移動光標。
<br>
<br>在命令模式下,有很多移動光標的方法。不但可以使用四個方向鍵來移動光標,還可以用h、j、k、l這四個鍵代替四個方向鍵來移動光標,這樣可以避免由于不同機器上的不同鍵盤定義所帶來的矛盾,而且使用熟練后可以手不離開字母鍵盤位置就能完成所有操作,從而提高工作效率。另外還可以用<Spacebar>、<Backspace>、<Ctrl+n>和<ctrl+p>四個鍵或組合鍵移動光標。且以上這三種鍵在實現功能上是等價的。除此之外,還有一些移動光標的命令。下面對它們的工作方式介紹如下:
<br>
<br><Spacebar>、&reg; (均稱為右向鍵)
<br>
<br>右向鍵的作用是將光標向右移動一個位置。若在向右鍵前先輸入一個數字n,那么光標就向右移動n個位置。例如5l表示光標向右移動5個位置。需要注意的是,光標移動不能超過當前行的末尾。若給定的n超過光標當前位置至行尾的字符個數,如果用右向鍵,光標只能移到行尾;如果用<Spacebar>,光標移到下面一行或幾行的適當位置。
<br>
<br>h、<Backspace>、&not; (向左鍵)
<br>
<br>執行一次向左鍵,光標向左移動一個位置。同向右鍵一樣,也可以在向左鍵的前面輸入一個數字n,那么光標就向左移動n個位置。需要注意的是,如果用左向鍵,光標左移不能超出該行的開頭;如果用<Backspace>,光標移到上面一行或幾行的適當位置。
<br>
<br>j、<Ctrl+n>、&macr; (向下鍵)
<br>
<br>執行一次向下鍵光標向下移動一個位置(即一行),但光標所在的列不變。當這些命令前面加上數字n,則光標下移n行。
<br>
<br>Vi除了可以用向下鍵將光標下移外,還可以用<Enter>鍵和“+”鍵將光標下移一行或n行(不包括本行在內),但此時光標下移之后將位于該行的第一個字符處。例如:
<br>
<br>3j 光標下移3行,且光標所在列的位置不變。
<br>
<br>3+或3<Enter> 光標下移3行,且光標位于該行的行首。
<br>
<br>k、<Ctrl+p>、&shy; (向上鍵)
<br>
<br>執行一次向上鍵光標向上移動一個位置(即一行),但光標所在的列不變。同樣在這些命令前面加上數字n,則光標上移n行。
<br>
<br>若希望光標上移之后,光標位于該行的行首,則可以使用命令“- ”。
<br>
<br>L (移至行首)
<br>
<br>L 命令是將光標移到當前行的開頭,即將光標移至當前行的第一個非空白處(非制表符或非空格符)。
<br>
<br>$(移至行尾)
<br>
<br>該命令將光標移到當前行的行尾,停在最后一個字符上。若在$命令之前加上一個數字n,則光標下移n-1行并到達行尾。
<br>
<br>[行號] G(移至指定行)
<br>
<br>該命令將光標移至指定行號所指定的行的行首。這種移動稱為絕對定位移動。
<br>
<br>[例8]
<br>
<br>#include <stdio.h>
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” 12 lines, 125 characters
<br>
<br>鍵入命令:6G后,屏幕顯示如下:
<br>
<br>#include <stdio.h>
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -