深入詳解Linux vi命令
vi命令還是比較常用的,于是我研究了一下Linux vi命令,在這里拿出來和大家分享一下,希望對大家有用。在屏幕上移動(dòng)Linux vi提供了三個(gè)關(guān)于光標(biāo)在全屏幕上移動(dòng)并且文件本身不發(fā)生滾動(dòng)的命令。它們分別是H、M和L命令。
Linux vi H命令
該Linux vi 命令將光標(biāo)移至屏幕首行的行首(即左上角),也就是當(dāng)前屏幕的***行,而不是整個(gè)文件的***行。利用此命令可以快速將光標(biāo)移至屏幕頂部。若在H命令之前加上數(shù)字n,則將光標(biāo)移至第n行的行首。
屏幕顯示如下內(nèi)容:
#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]
在命令模式下輸入4H命令后,光標(biāo)移到以for開頭的這一行的字母f上。值得一提的是,使用命令dH將會(huì)刪除從光標(biāo)當(dāng)前所在行至所顯示屏幕首行的全部內(nèi)容。
Linux vi M命令
該命令將光標(biāo)移至屏幕顯示文件的中間行的行首。即如果當(dāng)前屏幕已經(jīng)充滿,則移動(dòng)到整個(gè)屏幕的中間行;如果并未充滿,則移動(dòng)到文本的那些行的中間行。利用此命令可以快速地將光標(biāo)從屏幕的任意位置移至屏幕顯示文件的中間行的行首。例如,在上面屏幕顯示的情況下(不論光標(biāo)在屏幕的何處),在命令模式下,輸入命令M之后,光標(biāo)都將移到add這一行的字母a上。同樣值得一提的是,使用命令dM將會(huì)刪除從光標(biāo)當(dāng)前所在行至屏幕顯示文件的中間行的全部內(nèi)容。
Linux vi L命令
當(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上。
同樣值得一提的是,使用命令dL將會(huì)刪除從光標(biāo)當(dāng)前行至屏幕底行的全部內(nèi)容。
按字移動(dòng)光標(biāo)首先介紹一下Linux vi中“字”的概念。在Vi中“字”有兩種含義。一種是廣義的字,它可以是兩個(gè)空格之間的任何內(nèi)容。
在文件example.c 中的第4行:
{int k; 它只有2個(gè)字,一個(gè)是{int ,另一個(gè)是k;
Vi中另一種字是狹義上的字,在此種意義之下,英文單詞、標(biāo)點(diǎn)符號(hào)和非字母字符(如!、@、#、$、%、^、&、*、(、)、-、+、{、}、[、]、~、|、\、<、>、/等)均被當(dāng)成是一個(gè)字。因此,上面那一行中就包括{、int、k、;這4個(gè)字。 Vi中使用大寫命令一般就是指將字作為廣義來對待,使用小寫命令就是作為狹義對待。
搞清楚Linux vi中字的含義后,我們就可以介紹按字移動(dòng)光標(biāo)的命令了。Linux vi 一共提供了三組關(guān)于按字移動(dòng)光標(biāo)的命令,分別是:
Linux vi w和W命令
將光標(biāo)右移至下一個(gè)字的字首;
屏幕上顯示如下:
printf(“Hello Mr.Huang!\n”);
現(xiàn)在使用w命令,把光標(biāo)移到下一個(gè)字(狹義)的字首“(”上:
printf(“Hello Mr.Huang!\n”);
下面使用W命令,將把光標(biāo)移到下一個(gè)字(廣義)的字首“M”上:
printf(“Hello Mr.Huang!\n”);
Linux vi e和E命令
如果光標(biāo)起始位置處于字內(nèi)(即非字尾處),則該命令將把光標(biāo)移到本字字尾;如果光標(biāo)起始位置處于字尾,則該命令將把光標(biāo)移動(dòng)到下一個(gè)字的字尾。
Linux vi b和B
如果光標(biāo)處于所在字內(nèi)(即非字首),則該命令將把光標(biāo)移至本字字首;如果光標(biāo)處于所在字字首,則該命令將把光標(biāo)移到上一個(gè)字的字首。
屏幕顯示如下:
printf(“Hello Mr.Huang!\n”);
現(xiàn)在使用b命令,由于光標(biāo)處于該字中間,所以光標(biāo)移動(dòng)到本字字首“H”處:
printf(“Hello Mr.Huang!\n”);
如果使用B命令,則如下所示:
printf(“Hello Mr.Huang!\n”);
按句移動(dòng)光標(biāo) 在Vi中,一個(gè)句子被定義為是以逗號(hào)(,)、句號(hào)(.)、問號(hào)(?)和感嘆號(hào)(!)結(jié)尾,且其后面跟著至少兩個(gè)以上(含兩個(gè))空格或一個(gè)換行符的字符序列。 Linux vi提供了關(guān)于按句移動(dòng)光標(biāo)的兩個(gè)命令,分別為:
1. 命令將光標(biāo)移至上一個(gè)句子的開頭。
2. 命令該命令將光標(biāo)移至下一個(gè)句子的開頭。
按段移動(dòng)光標(biāo)在Linux vi中,一個(gè)段被定義為是以一個(gè)空白行開始和結(jié)束的片段。Vi提供了關(guān)于按段移動(dòng)光標(biāo)的兩個(gè)命令,分別為:
1. 命令該命令將光標(biāo)向前移至上一個(gè)段的開頭;
2. 命令該命令將光標(biāo)向后移至下一個(gè)段的開頭。
屏幕滾動(dòng)
屏幕Linux vi命令是以屏幕為單位移動(dòng)光標(biāo)的,常用于文件的滾屏和分頁。需要注意的是,屏幕命令不是光標(biāo)移動(dòng)命令,不能作為文本限定符用于刪除命令中。在命令模式下和文本輸入模式下均可以使用屏幕滾動(dòng)命令。
【編輯推薦】