常用的vi/vim命令

aFakeProgramer發表於2018-04-13

轉載自:

https://blog.csdn.net/wang907553141/article/details/78846784

常用的vi/vim命令:

vi命令:
    yy:複製 游標所在的這一行
    nyy:複製 游標所在行向下的n行

    p:貼上

    dd:剪下 游標所在的這一行
    ndd:剪下 游標所在行向下的n行
    D:從當前游標開始剪下,一直到行末
    d:從當前游標開始剪下,一直到行首
    x:刪除當前游標的字元,每次只能刪一個
    X:刪除當前游標前面的字元,每次只能刪一個
    nx:刪除從當前游標開始(包括當前游標)向後的n個字元
    nX:刪除從當前游標開始(不包括當前游標)向前的n個字元

    h左 l右 k上 j下
    H:當前螢幕的最上邊一行
    M:當前螢幕的中間
    L:當前螢幕的最下邊一行

    ctrl+f:向下翻一頁
    ctrl+b:向後翻一頁
    ctrl+d:向下翻半頁
    ctrl+u:向上翻半頁

    nG:快速的定位到第n行的位置
    G:快速的定位到最後一行的位置
    gg:快速的定位到第一行的位置

    w:跳到下一個單詞的開始處
    b:跳到上一個單詞的開始處
    
    u:撤銷剛剛的操作
    ctrl+r:反撤銷

    選中一片文字
    v:
    V:

    >>:向右移動程式碼
    <<:向左移動程式碼

    .:重複執行上一次的操作
    {:按段移動,上移
    }:按段移動,下移
    
    r:替換當前字元
    R:替換當前行游標及游標後面的字元

    /:str查詢
    n:查詢內容的上一個
    N:查詢內容的下一個


以下為全部命令:

vi有3個模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以輸入字元,按ESC將回到命令模式。

命令模式:可以移動游標、刪除字元等。

低行模式:可以儲存檔案、退出vi、設定vi、查詢等功能(低行模式也可以看作是命令模式裡的)。

一、開啟檔案、儲存、關閉檔案(vi命令模式下使用)

vi filename       //開啟filename檔案 
:w       //儲存檔案 
:w vpser.net //儲存至vpser.net檔案 
:q          //退出編輯器,如果檔案已修改請使用下面的命令 
:q!        //退出編輯器,且不儲存 
:wq         //退出編輯器,且儲存檔案 

二、插入文字或行(vi命令模式下使用,執行下面命令後將進入插入模式,按ESC鍵可退出插入模式)

a      //在當前游標位置的右邊新增文字 
i       //在當前游標位置的左邊新增文字 
A     //在當前行的末尾位置新增文字 
I      //在當前行的開始處新增文字(非空字元的行首) 
O     //在當前行的上面新建一行 
o     //在當前行的下面新建一行 
R    //替換(覆蓋)當前游標位置及後面的若干文字 
J    //合併游標所在行及下一行為一行(依然在命令模式)

三、移動游標(vi命令模式下使用)

1、使用上下左右方向鍵

2、命令模式下:h   向左、j   向下 、k   向上、l  向右。

空格鍵 向右、Backspace  向左、Enter  移動到下一行首、-  移動到上一行首。

四、刪除、恢復字元或行(vi命令模式下使用)

x         //刪除當前字元 
nx         //刪除從游標開始的n個字元 
dd      //刪除當前行 
ndd   //向下刪除當前行在內的n行 
u       //撤銷上一步操作 
U      //撤銷對當前行的所有操作 

五、搜尋(vi命令模式下使用)

/vpser     //向游標下搜尋vpser字串 
?vpser     //向游標上搜尋vpser字串 
n           //向下搜尋前一個搜素動作 
N         //向上搜尋前一個搜尋動作 

六、跳至指定行(vi命令模式下使用)

n+        //向下跳n行 
n-         //向上跳n行 
nG        //跳到行號為n的行 
G           //跳至檔案的底部

七、設定行號(vi命令模式下使用)

:set  nu     //顯示行號 
:set nonu    //取消顯示行號

八、複製、貼上(vi命令模式下使用)

yy    //將當前行復制到快取區,也可以用 "ayy 複製,"a 為緩衝區,a也可以替換為a到z的任意字母,可以完成多個複製任務。

nyy   //將當前行向下n行復制到緩衝區,也可以用 "anyy 複製,"a 為緩衝區,a也可以替換為a到z的任意字母,可以完成多個複製任務。

yw    //複製從游標開始到詞尾的字元。

nyw   //複製從游標開始的n個單詞。

y^      //複製從游標到行首的內容。  VPS偵探

y$      //複製從游標到行尾的內容。

p        //貼上剪下板裡的內容在游標後,如果使用了前面的自定義緩衝區,建議使用"ap 進行貼上。

P        //貼上剪下板裡的內容在游標前,如果使用了前面的自定義緩衝區,建議使用"aP 進行貼上。

九、替換(vi命令模式下使用)

:s/old/new      //用new替換行中首次出現的old 
:s/old/new/g         //用new替換行中所有的old 
:n,m s/old/new/g     //用new替換從n到m行裡所有的old 
:%s/old/new/g      //用new替換當前檔案裡所有的old

十、編輯其他檔案

:e otherfilename    //編輯檔名為otherfilename的檔案。

十一、修改檔案格式

:set fileformat=unix   //將檔案修改為unix格式,如win下面的文字檔案在linux下會出現^M