vi編輯器:命令模式、輸入模式、末行模式


1、命令模式(command mode)—執行命令  

在該模式中,可以輸入命令來執行許多種功能。控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。

2、輸入模式(Insert mode)—輸入文本 

vi被運行時,通常處在命令模式下,鍵入以下命令 可以使vi退出命令模式,進入輸入模式:I(i)、A(a)、O(o)。 

3、末行模式(last line mode)—執行待定命令 

將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等。不過一般我們在使用時把vi簡化成兩個模式,就是將末行模式(last line mode)也算入命令行模式command mode)。

 

1. vi的啟動

  輸入vi命令后,便進入全屏幕編輯環境,此時的狀態為命令模式。

  (1) vi

  進入vi的一個臨時緩沖區,光標定位在該緩沖區第1行第1列的位置上。

  (2) vi file1

  如果file1文件不存在,將建立此文件;如該文件存在,則將其拷貝到一個臨時緩沖區。光標定位在該緩沖區第1行第1列的位置上。

  (3) vi + file1

  如果file1文件不存在,將建立此文件;如該文件存在,則將其拷貝到一個臨時緩沖區。光標定位在文件最后1行第1列的位置上。

  (4) vi +N file1(N:為數字)

  如果file1文件不存在,將建立此文件;如該文件存在,則將其拷貝到一個臨時緩沖區。光標定位在文件第N行第1列的位置上。

  (5) vi +/string file1

  如果file1文件不存在將建立此文件;如該文件存在則將其拷貝到一個臨時緩沖區。光標定位在文件中第一次出現字符串string的行首位置。

2. 退出vi(末行模式(last line mode))

  建議在退出vi前,先按ESC鍵,以確保當前vi的狀態為命令方式,然后再鍵入“:”(冒號),輸入下列命令,退出vi。

  (1) :w

  將編輯緩沖區的內容寫入文件,則新的內容就替代了原始文件。這時並沒有退出vi,必須進一步輸入下述命令才能退出vi:

  :w filename(存入指定文件)

  :q

  (2) :wq

  即將上面的兩步操作可以合成一步來完成,先執行w,后執行q。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3、在文件中移動光標 

 

  • h:向左移動一個字符 
  • l:向右移動一個字符  
  • j:向下移動一行 
  • k:向上移動一行 
  • ^(即Shift+6):移動到當前行的開頭處 
  • $(即Shift+4):移動到當前行的結尾處  
  • H(大寫):使光標移動到屏幕的頂部 
  • M(大寫):使光標移動到屏幕的中間 
  • L(大寫):使光標移動到屏幕的底部  
  • Ctrl+b:上滾一屏。  
  • Ctrl+f:下滾一屏。 
  • Ctrl+d:下滾半屏。 
  • Ctrl+u: 上滾半屏。

 

4、撤消更改 

    (1)撤消前一個命令:在最后一個命令之后立即輸入u來撤消該命令 

 (2)重復某個命令:“.” 

 (3)撤消對一行的更改:輸入U來撤消你對一行所做的所有更改,這個命令只有在你沒將光標移動到該行以外時才生效。

 

5、刪除文本 

 (1)刪除一個字符: 

 ●為刪除一個字符,需將光標放置在要刪除的字符上並輸入x 

 ●為刪除光標之前(其左邊)的一個字符,需輸入X  

   (2)刪除一個詞或詞的部分內容: 

 ●為刪除一個詞,需將光標放置到該詞的開頭並輸入dw  

    ●為刪除詞的部分內容,需將光標放置到該詞要保存部分的右邊。輸入dw來刪除該詞余下的部分  

   (3)刪除一行:將光標放置到該行的任意處並輸入dd  

   (4)刪除多行:ndd  

   (5)刪除行的部分內容:將光標放置到該行要保存部分的右邊,並輸入D。為刪除光標左邊的所有內容,須將光標放置到該行要刪除部分的右邊,並輸入d0(d-零)。 

 (6)刪除到文件的結尾:為刪除從當前行到文件結尾的所有內容,需輸入dG

6、復制和移動文本 

 ●復制一行命令:yy 

 ●粘貼命令:p  

    ●移動文本:先將要移動的部分用刪除命令刪除,然后再粘貼就可以了 

 ●復制指定文件的內容  : r filename 

7、查找一個字符串 

 ●輸入/,並在/后面輸入要查找的串,然后按下回車  

    ●輸入“n”跳轉到該串的下一個出現處  

    ●輸入“N”跳轉到該串的上一個出現處  

8、替換一個字符串 

 ●在一行內替換頭一個字符串old為新的字符串new   :s/old/new  

 ●在一行內替換所有的字符串old為新的字符串new   :s/old/new/g  

 ●在兩行內替換所有的字符串old為新的字符串new   :#,#s/old/new/g 

 ●在文件內替換所有的字符串old為新的字符串new   :%s/old/new/g  

 ●進行全文替換時詢問用戶確認每個替換需添加c選項   :%s/old/new/gc  

9、設置vi  

 ●顯示行號   :set number   

    ●取消行號顯示   :set nonumber   

    ●設置顯示用戶模式   :set showmode   

    ●設置文件只讀   :set readonly

(轉載的)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM