Linux下vi使用

孫群發表於2013-11-30

1.vi有三種模式:指令模式(Command Mode)、插入模式(Insert Mode)以及底行模式(Last line Mode)。

2.指令模式下輸入i、a、o、r可進入插入模式,插入模式下按Esc鍵可返回指令模式。

3.指令模式下輸入冒號:可進入底行模式,底行模式下按Enter鍵執行完命令或按Esc鍵都可以返回指令模式。此處要特別注意,在按Enter鍵執行完底行中的命令後,雖然在底行中仍然顯示著:與命令,但是此時卻已經返回了指令模式。當然了,如果在底行模式中執行了q退出命令,就直接退出vi編輯器了,也就肯定回不到指令模式了。

4.插入模式與底行模式之間不能直接進行切換,二者如果需要切換需要首先切換到指令模式,然後再切換到對應的模式。

4.執行vi test.txt,如果test.txt不存在那麼會新建立一個test.txt檔案,並且進入vi後底行會顯示new file;如果test.txt之前已經存在,那麼vi test.txt會開啟該檔案,並在底行顯示該檔案的相關資訊,比如有多少行多少個字元等。然後通過i(或a、o、r)進入到插入模式,此時底行應該會顯示INSERT,表示當前是插入模式,但是在ubuntu下底行資訊還是剛進入vi時指令模式下的底行資訊,並沒有顯示INSERT,解決辦法是先通過:進入底行模式,然後執行set showmode,然後返回指令模式,然後再進入插入模式在底行就會顯示INSERT。

5.在插入模式下有時候按上下左右方向鍵時,會顯示ABCD四個字母,解決辦法是在底行模式下執行:set nocompatible

6.指令模式下通過鍵盤上的四個方向鍵和hjkl(注意最後是l鍵而不是大寫的i)控制游標的方向,hjkl是鍵盤上四個相鄰且在同一行的鍵,h向左,j向下,k向上,l向右;在插入模式下就只能通過四個方向鍵來控制游標的方向了,因為按下hjkl時會在vi裡面直接將他們列印出來。

7.當按下Backspace鍵時,有時候其只是將游標向左移而沒有刪除字元

8.vim中!常常表示強制的意思,比如w!

9.指令模式下的常用操作:

   dd:用於刪除游標所在的那一整行

   ndd:n為數字,用於刪除游標所在的向下n行,比如3dd則刪除3行

   x,X: 在一行當中,x為向後刪除一個字元(相當於Delete鍵),X為向前刪除一個字元(相當於Windows中的Backspace鍵)

   nx: n為數字,連續向後刪除n個字元,比如3x就是連續刪除3個字元

   yy: 複製游標所在的那一整行

   p,P: p將已複製的資料貼上在游標的下一行,P將已複製的資料貼上在游標的上一行

   j:將游標所在行與下一行的資料結合成一行

   u:撤銷上一次的操作,即undo

   Ctrl+r:重做上一次的操作,即redo

   小數點.: 作用是重複前一個操作

10.底行模式下的常用操作

   :set nu  顯示行號

   :set nonu  不顯示行號

   :wq  儲存後退出   

   :q!  退出但不儲存

   :w!  若檔案為“只讀”時,強制寫入該檔案。不過,到底能不能寫入,還與使用者對該檔案的許可權相關

   :wq!  強制儲存後退出

11.之後為了能正常使用vi,進入vi之後應先切換到底行模式,分別執行以下命令

    :set nu

    :set showmode

    :set nocompatible

相關文章