寫在前面:作為常年與伺服器、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移動游標到行首
一般模式下,可以使用數字移動游標到行首;
非常常用;
$移動游標到行尾
一般模式下,可以使用符號【$】移動游標到行尾;
非常常用;
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行
重視基礎,打好基本功
看到 演算法與資料結構考研試題精析 這本書有感。現在會看感覺以前沒有認識到基礎的意義,就那些考試還有面試問題左移,指標那些你覺得沒有意義,你當時覺得學那些東西沒有意義。你當時的意義好像就是激情,而且反正激情也能做出東西,所以那些對你而言就覺得沒什麼意義 現在回看這種想法很錯誤。你以前確實非常不重視基...
隨筆 基本功與招式
前段時間看了吳軍 全球科技史通 還沒入正文就產生一種生理性的共鳴。清華大學資深教授錢穎一在推薦序說了這幾句 科學與科技密不可分,同時兩者也有區別。科學是發現自然規律,技術是對改造世界有用的發明。近代以來,中國為了追趕西方,著眼點太多在技術和工程方面,因為只有工程和技術可以直接帶來經濟的繁榮和軍事的強...
java基礎篇的基本功(1)
回答這種問題我們需要知道啥是物件導向?基本特徵有哪些及其含義與作用?面向過程 面向過程就是解決問題的具體步驟 第一步幹啥,第二步幹啥等等一系列的步驟.優點 效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源 比如微控制器 嵌入式開發 linux unix等一般採用面向過程開發,效能是...