寫在前面:做爲常年與服務器、Linux打交道的後端開發RD,基本的vi操做是必定要運用很是熟練的;本篇文章就記錄了一些平常工做中最經常使用的的指令,但願能和你們共同窗習共同進步~vim
1、vi與vim的區別
vim是vi的升級版本,它兼容vi的全部指令,並提供一些新特性,如以不一樣顏色標識語法等;(以後會總結一些vim的經常使用功能~)後端
2、vi的三種模式服務器
模式 | 功能 |
---|---|
通常模式 | 經過vi打開文件後的默認模式,在此模式下能夠方便地移動光標,執行復制、剪切、刪除、粘貼等操做; |
編輯模式 | 在通常模式按下【i、I、o、O、a、A、r、R】等字符便可進入編輯模式(最常使用【i】在光標處開始編輯、【o】在光標下一行插入新行,並跳轉至新行開始編輯),編輯模式下能夠編輯文件,按下【ESC】可退出到通常模式; |
命令行模式 | 在通常模式按下【:、/、?】字符便可進入命令行模式,命令行模式下能夠保存修改、離開vi、查找字符、替換字符,按下【ESC】可退出到通常模式; |
3、最經常使用指令學習
一、移動指令命令行
指令 | 功能 | 簡介 | 編者按 |
---|---|---|---|
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】移動到文件第一行; | 很是經常使用; |
二、查找替換指令日誌
指令 | 功能 | 簡介 | 編者按 |
---|---|---|---|
/關鍵字 | 從光標位置向下查找關鍵字 | 通常模式下,能夠經過符號【/】進入命令行模式,再鍵入要查找的關鍵字,按下【回車】便可自動將光標移動到向下第一個關鍵字處;結合【n】沿以前方向繼續查找(此處爲繼續向下)、【N】沿以前反向繼續查找(此處爲繼續向上); | 很是經常使用,好比經過關鍵字查找日誌; |
?關鍵字 | 從光標位置向上查找關鍵字 | 通常模式下,能夠經過符號【?】進入命令行模式,再鍵入要查找的關鍵字,按下【回車】便可自動將光標移動到向上第一個關鍵字處;結合【n】沿以前方向繼續查找(此處爲繼續向上)、【N】沿以前反向繼續查找(此處爲繼續向下); | 無 |
:1,$s/word1/word2/gc | 從第一行到最後一行查找word1並替換爲word2,並在替換前提示用戶確認 | 通常模式下,能夠經過符號【:】進入命令行模式,再鍵入【1,$】表明從第一行到最後一行,$也能夠用具體的行號代替,最後的參數【c】表明替換前提示用戶確認; | 通常來講,除非確認要全局替換的狀況,仍是推薦加上參數【c】確保替換無誤; |
三、剪切、刪除、複製、粘貼指令後端開發
指令 | 功能 | 簡介 | 編者按 |
---|---|---|---|
x | 刪除(剪切)光標位置處的字符 | 在通常模式下,能夠使用小寫字母【x】代替【Del】刪除(剪切)光標位置的字符; | 很是經常使用,較使用【Del】更方便;在vi指令中,刪除通常均可以作爲剪切使用; |
dd | 刪除(剪切)光標所在行 | 在通常模式下,能夠使用【dd】刪除(剪切)光標所在行操做;可以使用【ndd】刪除連續的n行; | 很是經常使用; |
yy | 複製光標所在行 | 在通常模式下,能夠使用【yy】複製光標所在行;可以使用【nyy】複製連續的n行; | 很是經常使用; |
p | 將已複製的數據粘貼在光標下一行 | 在通常模式下,能夠使用【p】將已複製的數據粘貼在光標下一行; | 很是經常使用; |
四、重複操做與撤銷操做指令開發
指令 | 功能 | 簡介 | 編者按 |
---|---|---|---|
u | 撤銷前一個操做 | 在通常模式下,可以使用【u】撤銷以前的操做 | 很是經常使用; |
Ctrl+r | 恢復前一個被撤銷的操做 | 在通常模式下,能夠使用【Ctrl+r】恢復【u】撤銷的操做 | 【u】的反向操做; |
. | 重複以前的操做 | 在通常模式下,使用符號【.】能夠方便地重複以前的刪除、粘貼操做 | 很是經常使用; |
五、命令行模式經常使用指令table
指令 | 功能 |
---|---|
:w | 保存文件 |
:q | 退出文件 |
:wq | 保存並退出文件 |
:q! | 強制退出,不保存 |
:set nu | 設置行號 |
:set nonu | 取消設置行號 |
:數字 | 移動光標到第n行 |