RD基本功——Vi基礎與最常用指令

Leeon發表於2018-03-16

寫在前面:作為常年與伺服器、Linux打交道的後端開發RD,基本的vi操作是一定要運用非常熟練的;本篇文章就記錄了一些日常工作中最常用的的指令,希望能和大家共同學習共同進步~

一、vi與vim的區別
vim是vi的升級版本,它相容vi的所有指令,並提供一些新特性,如以不同顏色標識語法等;(之後會總結一些vim的常用功能~)

二、vi的三種模式

模式 功能
一般模式 通過vi開啟檔案後的預設模式,在此模式下可以方便地移動游標,執行復制、剪下、刪除、貼上等操作;
編輯模式 在一般模式按下【i、I、o、O、a、A、r、R】等字元即可進入編輯模式(最常使用【i】在游標處開始編輯、【o】在游標下一行插入新行,並跳轉至新行開始編輯),編輯模式下可以編輯檔案,按下【ESC】可退出到一般模式;
命令列模式 在一般模式按下【:、/、?】字元即可進入命令列模式,命令列模式下可以儲存修改、離開vi、查詢字元、替換字元,按下【ESC】可退出到一般模式;

三、最常用指令

1、移動指令

指令 功能 簡介 編者按
k/j/h/l 上下左右移動游標 一般模式下,可以使用【k/j/h/l】代替方向鍵上下左右移動游標,多次相同移動指令可使用數字+指令執行,如【30j】即代表向下移動游標30次; 剛開始使用這四個鍵會很難記、很不適應,但習慣後的確會更方便、更極致;
Ctrl+f 向下翻頁 一般模式下,可以使用組合鍵【Ctrl+f】向下翻頁; 適用於vi瀏覽多頁資料
Ctrl+b 向上翻頁 一般模式下,可以使用組合鍵【Ctrl+b】向上翻頁; 適用於vi瀏覽多頁資料
0 移動游標到行首 一般模式下,可以使用數字【0】移動游標到行首; 非常常用;
$ 移動游標到行尾 一般模式下,可以使用符號【$】移動游標到行尾; 非常常用;
G 移動游標到檔案最後一行 一般模式下,可以使用大寫字母【G】移動游標到檔案最後一行,【nG】代表移動游標到檔案的第n行; 非常常用,比如直接跳到日誌檔案末尾檢視最新的日誌;
gg 移動游標到檔案第一行 一般模式下,可以使用【gg】移動到檔案第一行; 非常常用;

2、查詢替換指令

指令 功能 簡介 編者按
/關鍵字 從游標位置向下查詢關鍵字 一般模式下,可以通過符號【/】進入命令列模式,再鍵入要查詢的關鍵字,按下【回車】即可自動將游標移動到向下第一個關鍵字處;結合【n】沿之前方向繼續查詢(此處為繼續向下)、【N】沿之前反向繼續查詢(此處為繼續向上); 非常常用,比如通過關鍵字查詢日誌;
?關鍵字 從游標位置向上查詢關鍵字 一般模式下,可以通過符號【?】進入命令列模式,再鍵入要查詢的關鍵字,按下【回車】即可自動將游標移動到向上第一個關鍵字處;結合【n】沿之前方向繼續查詢(此處為繼續向上)、【N】沿之前反向繼續查詢(此處為繼續向下);
:1,$s/word1/word2/gc 從第一行到最後一行查詢word1並替換為word2,並在替換前提示使用者確認 一般模式下,可以通過符號【:】進入命令列模式,再鍵入【1,$】代表從第一行到最後一行,$也可以用具體的行號代替,最後的引數【c】代表替換前提示使用者確認; 一般來說,除非確認要全域性替換的情況,還是推薦加上引數【c】確保替換無誤;

3、剪下、刪除、複製、貼上指令

指令 功能 簡介 編者按
x 刪除(剪下)游標位置處的字元 在一般模式下,可以使用小寫字母【x】代替【Del】刪除(剪下)游標位置的字元; 非常常用,較使用【Del】更方便;在vi指令中,刪除一般都可以做為剪下使用;
dd 刪除(剪下)游標所在行 在一般模式下,可以使用【dd】刪除(剪下)游標所在行操作;可使用【ndd】刪除連續的n行; 非常常用;
yy 複製游標所在行 在一般模式下,可以使用【yy】複製游標所在行;可使用【nyy】複製連續的n行; 非常常用;
p 將已複製的資料貼上在游標下一行 在一般模式下,可以使用【p】將已複製的資料貼上在游標下一行; 非常常用;

4、重複操作與撤銷操作指令

指令 功能 簡介 編者按
u 撤銷前一個操作 在一般模式下,可使用【u】撤銷之前的操作 非常常用;
Ctrl+r 恢復前一個被撤銷的操作 在一般模式下,可以使用【Ctrl+r】恢復【u】撤銷的操作 【u】的反向操作;
. 重複之前的操作 在一般模式下,使用符號【.】可以方便地重複之前的刪除、貼上操作 非常常用;

5、命令列模式常用指令

指令 功能
:w 儲存檔案
:q 退出檔案
:wq 儲存並退出檔案
:q! 強制退出,不儲存
:set nu 設定行號
:set nonu 取消設定行號
:數字 移動游標到第n行

相關文章