?? 命令大集合.htm
字號:
<br>printf(“x=%d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” [ New File]
<br>
<br>在命令模式下輸入4H命令后,光標(biāo)移到以for開頭的這一行的字母f上。
<br>
<br>值得一提的是,使用命令dH將會刪除從光標(biāo)當(dāng)前所在行至所顯示屏幕首行的全部內(nèi)容。
<br>2. M命令
<br>
<br>該命令將光標(biāo)移至屏幕顯示文件的中間行的行首。即如果當(dāng)前屏幕已經(jīng)充滿,則移動到整個屏幕的中間行;如果并未充滿,則移動到文本的那些行的中間行。利用此命令可以快速地將光標(biāo)從屏幕的任意位置移至屏幕顯示文件的中間行的行首。例如,在上面屏幕顯示的情況下(不論光標(biāo)在屏幕的何處),在命令模式下,輸入命令M之后,光標(biāo)都將移到add這一行的字母a上。
<br>
<br>同樣值得一提的是,使用命令dM將會刪除從光標(biāo)當(dāng)前所在行至屏幕顯示文件的中間行的全部內(nèi)容。
<br>3. L命令
<br>
<br>當(dāng)文件顯示內(nèi)容超過一屏?xí)r,該命令將光標(biāo)移至屏幕上的最底行的行首;當(dāng)文件顯示內(nèi)容不足一屏?xí)r,該命令將光標(biāo)移至文件的最后一行的行首。可見,利用此命令可以快速準(zhǔn)確地將光標(biāo)移至屏幕底部或文件的最后一行。若在L命令之前加上數(shù)字n,則將光標(biāo)移至從屏幕底部算起第n行的行首。例如,在上面屏幕顯示的情況下(不論光標(biāo)在屏幕的何處),在命令模式下,輸入命令3L之后,光標(biāo)都將移到x++這一行的字母x上。
<br>
<br>同樣值得一提的是,使用命令dL將會刪除從光標(biāo)當(dāng)前行至屏幕底行的全部內(nèi)容。
<br>
<br>按字移動光標(biāo)
<br>
<br>首先介紹一下Vi中“字”的概念。在Vi中“字”有兩種含義。一種是廣義的字,它可以是兩個空格之間的任何內(nèi)容。
<br>
<br>[例10] 在文件example.c 中的第4行:
<br>
<br>{int k;
<br>
<br>它只有2個字,一個是{int ,另一個是k;
<br>
<br>Vi中另一種字是狹義上的字,在此種意義之下,英文單詞、標(biāo)點符號和非字母字符(如!、@、#、$、%、^、&、*、(、)、-、+、{、}、[、]、~、|、\、<、>、/等)均被當(dāng)成是一個字。因此,上面那一行中就包括{、int、k、;這4個字。
<br>
<br>Vi中使用大寫命令一般就是指將字作為廣義來對待,使用小寫命令就是作為狹義對待。
<br>
<br>搞清楚Vi中字的含義后,我們就可以介紹按字移動光標(biāo)的命令了。
<br>
<br>Vi 一共提供了三組關(guān)于按字移動光標(biāo)的命令,分別是:
<br>
<br>1. w和W命令
<br>
<br>將光標(biāo)右移至下一個字的字首;
<br>
<br>[例11] 屏幕上顯示如下:
<br>
<br>printf(“Hello Mr.Huang!\n”);
<br>
<br>現(xiàn)在使用w命令,把光標(biāo)移到下一個字(狹義)的字首“(”上:
<br>
<br>printf(“Hello Mr.Huang!\n”);
<br>
<br>下面使用W命令,將把光標(biāo)移到下一個字(廣義)的字首“M”上:
<br>
<br>printf(“Hello Mr.Huang!\n”);
<br>2. e和E命令
<br>
<br>如果光標(biāo)起始位置處于字內(nèi)(即非字尾處),則該命令將把光標(biāo)移到本字字尾;如果光標(biāo)起始位置處于字尾,則該命令將把光標(biāo)移動到下一個字的字尾。
<br>3. b和B
<br>
<br>如果光標(biāo)處于所在字內(nèi)(即非字首),則該命令將把光標(biāo)移至本字字首;如果光標(biāo)處于所在字字首,則該命令將把光標(biāo)移到上一個字的字首。
<br>
<br>[例12] 屏幕顯示如下:
<br>
<br>printf(“Hello Mr.Huang!\n”);
<br>
<br>現(xiàn)在使用b命令,由于光標(biāo)處于該字中間,所以光標(biāo)移動到本字字首“H”處:
<br>
<br>printf(“Hello Mr.Huang!\n”);
<br>
<br>如果使用B命令,則如下所示:
<br>
<br>printf(“Hello Mr.Huang!\n”);
<br>
<br>按句移動光標(biāo)
<br>
<br>在Vi中,一個句子被定義為是以逗號(,)、句號(.)、問號(?)和感嘆號(!)結(jié)尾,且其后面跟著至少兩個以上(含兩個)空格或一個換行符的字符序列。
<br>
<br>Vi提供了關(guān)于按句移動光標(biāo)的兩個命令,分別為:
<br>
<br>1. ( 命令
<br>
<br>將光標(biāo)移至上一個句子的開頭。
<br>
<br>2. ) 命令
<br>
<br>該命令將光標(biāo)移至下一個句子的開頭。
<br>
<br>按段移動光標(biāo)
<br>
<br>在Vi中,一個段被定義為是以一個空白行開始和結(jié)束的片段。Vi提供了關(guān)于按段移動光標(biāo)的兩個命令,分別為:
<br>
<br>1. { 命令
<br>
<br>該命令將光標(biāo)向前移至上一個段的開頭;
<br>
<br>2. } 命令
<br>
<br>該命令將光標(biāo)向后移至下一個段的開頭。
<br>
<br>屏幕滾動
<br>
<br>屏幕命令是以屏幕為單位移動光標(biāo)的,常用于文件的滾屏和分頁。需要注意的是,屏幕命令不是光標(biāo)移動命令,不能作為文本限定符用于刪除命令中。
<br>
<br>在命令模式下和文本輸入模式下均可以使用屏幕滾動命令。
<br>
<br>
<br>
<br>1. 滾屏命令
<br>
<br>關(guān)于滾屏命令有兩個:
<br>
<br>· < Ctrl+u > 將屏幕向前(文件頭方向)翻滾半屏;
<br>
<br>· < Ctrl+d > 將屏幕向后(文件尾方向)翻滾半屏。
<br>
<br>可以在這兩個命令之前加上一個數(shù)字n,則屏幕向前或向后翻滾n行。并且這個值被系統(tǒng)記住,以后再用< Ctrl+u >和< Ctrl+d >命令滾屏?xí)r,還滾相應(yīng)的行數(shù)。
<br>
<br>2. 分頁命令
<br>
<br>關(guān)于分頁命令也有兩個:
<br>
<br>· < Ctrl+f > 將屏幕向文件尾方向翻滾一整屏(即一頁);
<br>
<br>· < Ctrl+b > 將屏幕向文件首方向翻滾一整屏(即一頁)。
<br>
<br>同樣也可以在這兩個命令之前加上一個數(shù)字n,則屏幕向前或向后移動n頁。
<br>
<br>3. 狀態(tài)命令< Ctrl+G >
<br>
<br>命令顯示在vi狀態(tài)行上的vi狀態(tài)信息,包括正在編輯的文件名、是否修改過、當(dāng)前行號、文件的行數(shù)以及光標(biāo)之前的行占整個文件的百分比。
<br>
<br>4. 屏幕調(diào)零命令
<br>
<br>Vi 提供了三個有關(guān)屏幕調(diào)零的命令。它們的格式分別為:
<br>
<br>· [行號] z [行數(shù)] <回車>
<br>
<br>· [行號] z [行數(shù)] .
<br>
<br>· [行號] z [行數(shù)] _
<br>
<br>若省略了行號和行數(shù),這三個命令分別為將光標(biāo)所在的當(dāng)前行作為屏幕的首行、中間行和最末行重新顯示;若給出行號,那么該行號所對應(yīng)的行就作為當(dāng)前行顯示在屏幕的首行、中間行和最末行;若給出行數(shù),則它規(guī)定了在屏幕上顯示的行數(shù)。
<br>
<br>[例13]
<br>
<br>8z16<回車> :將文件中的第8行作為屏幕顯示的首行,并一共顯示16行。
<br>
<br>15z . :將文件中的第15行作為屏幕顯示的中間行,顯示行數(shù)為整屏。
<br>
<br>15z 5_ :將文件中的第15行作為屏幕顯示的最末行,顯示行數(shù)為5行。
<br>
<br>文本插入操作
<br>
<br>在命令模式下用戶輸入的任何字符都被Vi當(dāng)作命令加以解釋執(zhí)行,如果用戶要將輸入的字符當(dāng)作是文本內(nèi)容時,則首先應(yīng)將Vi的工作模式從命令模式切換到文本輸入模式。切換的方式是使用下面的命令。
<br>
<br>
<br>
<br>插入(Insert)命令
<br>
<br>Vi提供了兩個插入命令:i和 I。
<br>
<br>
<br>
<br>
<br>
<br>1. i命令
<br>
<br>插入文本從光標(biāo)所在位置前開始,并且插入過程中可以使用<Backspace>鍵刪除錯誤的輸入。此時Vi處于插入狀態(tài),屏幕最下行顯示“--INSERT--”(插入)字樣。
<br>
<br>[例14] 有一正在編輯的文件,如下所示:
<br>
<br>Welcome to vi world!Come on!
<br>
<br>~
<br>
<br>~
<br>
<br>光標(biāo)位于第一個“!”上,需在其前面插入:
<br>
<br>This is an example!
<br>
<br>使用i命令,并輸入相應(yīng)文本后,屏幕顯示如下:
<br>
<br>Welcome to vi world This is an example!!Come on!
<br>
<br>~
<br>
<br>~
<br>
<br>由此例可以看到,光標(biāo)本來是在第一個“!”處,但是由于是從光標(biāo)所在位置前開始插入,所以這個“!”就被擠到了新插入的文本之后。
<br>2. I命令
<br>
<br>該命令是將光標(biāo)移到當(dāng)前行的行首,然后在其前插入文本。
<br>
<br>
<br>
<br>}
<br>
<br>第二十九課 vi命令 2000年/7月/10日
<br>
<br>
<br>
<br>
<br>
<br>附加(append)命令
<br>
<br>Vi提供了兩個附加插入命令:a和A。
<br>
<br>1. a命令
<br>
<br>該命令用于在光標(biāo)當(dāng)前所在位置之后追加新文本。新輸入的文本放在光標(biāo)之后,在光標(biāo)后的原文本將相應(yīng)地向后移動。光標(biāo)可在一行的任何位置。
<br>
<br>[例15] 以例14原始情況為例,使用a命令,并輸入相應(yīng)文本,屏幕顯示如下:
<br>
<br>Welcome to vi world!This is an example!Come on!
<br>
<br>~
<br>
<br>~
<br>
<br>本例中光標(biāo)后的文本“Come on!”被新輸入的文本擠到了后面。
<br>2. A命令
<br>
<br>該命令與a命令不同的是,A命令將把光標(biāo)挪到所在行的行尾,從那里開始插入新文本。當(dāng)輸入A命令后,光標(biāo)自動移到該行的行尾。
<br>
<br>a和A命令是把文本插入到行尾的唯一方法。
<br>
<br>
<br>
<br>打開(open)命令
<br>
<br>不論是Insert命令也好,還是append命令也好,所插入的內(nèi)容都是從當(dāng)前行中的某個位置開始的。若我們希望在某行之前或某行之后插入一些新行,則應(yīng)使用open命令。
<br>
<br>Vi提供了兩個打開命令:o和O。
<br>
<br>1. o命令
<br>
<br>該命令將在光標(biāo)所在行的下面新開一行,并將光標(biāo)置于該行的行首,等待輸入文本。要注意,當(dāng)使用<Backspace>刪除字符時只能刪除從插入模式開始的位置以后的字符,對于以前的字符不起作用。而且還可以在文本輸入方式下輸入一些控制字符,例如,Ctrl+l即是插入分頁符,顯示為^L。
<br>
<br>[例16] 以例14的原始情況為例,只是這次要在當(dāng)前行下面一行輸入文本。使用o命令,并輸入相應(yīng)文本,屏幕顯示如下:
<br>
<br>Welcome to vi world!Come on!
<br>
<br>This is an example!
<br>
<br>~
<br>
<br>~
<br>
<br>新輸入的文本出現(xiàn)在原來文本所在行的下一行。
<br>2. O命令
<br>
<br>和o命令相反,O命令是在光標(biāo)所在行的上面插入一行,并將光標(biāo)置于該行的行首,等待輸入文本。
<br>
<br>[例17] 與例14的原始情況相同,要在當(dāng)前行的上面一行輸入文本。使用O命令并輸入文本后,屏幕顯示如下:
<br>
<br>This is an example!
<br>
<br>Welcome to vi world!Come on!
<br>
<br>~
<br>
<br>~
<br>
<br>文本插入到了當(dāng)前行之上。
<br>
<br>11.3.4 文本修改
<br>
<br>在命令模式下可以使用Vi提供的各種有關(guān)命令對文本進(jìn)行修改,包括對文本內(nèi)容的刪除、復(fù)制、取代和替換等。
<br>
<br>
<br>
<br>
<br>
<br>文本刪除
<br>
<br>在編輯文本時,經(jīng)常需要刪除一些不需要的文本,我們可以用<Backspace>鍵將輸錯或不需要的文本刪除,但此時有一個限制就是當(dāng)刪到行頭之后,再想刪上面那行的內(nèi)容是不可能的。
<br>
<br>在命令模式下,Vi提供了許多刪除命令。這些命令大多是以d開頭的。常用的有:
<br>
<br>1. 刪除單個字符
<br>
<br>x: 刪除光標(biāo)處的字符。若在x之前加上一個數(shù)字n,則刪除從光標(biāo)所在位置開始向右的n個字符。
<br>
<br>X:刪除光標(biāo)前面的那個字符。若在X之前加上一個數(shù)字n,則刪除從光標(biāo)前面那個字符開始向左的n個字符。
<br>
<br>顯然這兩個命令是刪除少量字符的快捷方法。
<br>
<br>2. 刪除多個字符
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -