vim編輯器怎麼用(linux系統的vi編輯器怎麼用)

簡介

vi 編輯器是Linux 系統下的標準編輯器,vi 可以分為三種狀態,分別是命令模式(命令列模式)、插入模式(Insert mode)和底行模式(底行模式),各模式的功能區分如下: 命令列模式:控制螢幕游標的移動,字元、字或行的刪除,移動複製某區段及進入插入模式下,或者到底行模式。 插入模式(Insert mode):只有在Insert mode 下,才可以做文字輸入,按ESC 鍵可回到命令列模式。 底行模式:將檔案儲存或退出vi,也可以設定編輯環境,如尋找字串、列出行號等。 在使用時通常把 vi 簡化成兩個模式,將底行模式也算入命令列模式。 更多可檢視vim菜鳥教程 或者vim編輯器從入門到精通

1.啟動與退出

啟動 vi :在系統提示符號輸入vi 及檔名稱後,就進入vi 全螢幕編輯畫面,例如:$ vi myfile。 注意::進入vi 之後,處於命令列模式,要切換到插入模式才能夠輸入文字,在命令列模式下按下字母i 進入插入模式。 退出 vi 及儲存檔案:在命令列模式下,按一下冒號:鍵進入底行模式,例如:

:wq             存檔並退出vi) :q!             不存檔強制退出vi) :x或ZZ       有修改才存檔 :w [filename]   將編輯的資料儲存成另一個檔案(類似另存為) :r [filename]   在編輯的資料中,讀入另一個檔案的資料。亦即將 『filename』   這個檔案內容加到遊標所在行後面 :n1,n2 w [filename] 將 n1 到 n2 行的內容儲存成 filename 這個檔案。 :! command      暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如 :! ls /home     即可在 vi 當中察看 /home 底下以 ls 輸出的檔案資訊! 複製程式碼

2.命令模式功能鍵

1) 插入模式

按 i 進入插入模式後,是從游標當前位置開始輸入文字; 按 a 進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字; 按 A 進入插入模式後,是從目前游標所在行的行尾開始; 按 o 進入插入模式後,是插入新的一行,從行首開始輸入文字。 複製程式碼

2) 移動游標

vi 可以直接用鍵盤上的游標來上下左右移動,但正規的vi 是用小寫英文字母h、j、k、l,分別控制游標左、下、上、右移一格

按 ctrl b:螢幕往前移動一頁。 按 ctrl f:螢幕往後移動一頁。 按 ctrl u:螢幕往前移動半頁。 按 ctrl d:螢幕往後移動半頁。 按 0:    移到游標所在行的開頭。(常用) 按 G:    移動到文章的最後。(常用) nG  n 為數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu) gg  移動到這個檔案的第一行,相當於 1G (常用) n   n 為數字。游標向下移動 n 行(常用) 按$:移動到游標所在行的行尾。(常用) 按^:移動到游標所在行的行首,同0。 按 w:游標跳到下個字的開頭。(常用) 按 e:游標跳到下個字的字尾。 按 b:游標回到上個字的開頭。 按10l:游標向右移動10個位置,可以數字與hjkl組合進行游標移動(常用) 複製程式碼

3) 刪除文字

x:每按一次,刪除游標所在位置的"後面"一個字元。 6x:6x 表示刪除游標所在位置的"後面"6 個字元。(常用) X:大寫的X,每按一次,刪除游標所在位置的"前面"一個字元。 20X:20X 表示刪除游標所在位置的"前面"20 個字元。 dd:刪除游標所在行。 10dd:從游標所在行開始刪除10行 dG  刪除游標所在行一直到檔案末尾的所有內容 :a1,a2d 刪除從 a1 行到 a2 行的文字內容 複製程式碼

4) 複製

yw:將游標所在之處到字尾的字元複製到緩衝區中。 4yw:複製4個字到緩衝區,數字可改 yy:複製游標所在行到緩衝區。 6yy:表示拷貝從游標所在的該行"往下數"6 行文字。 p:將緩衝區內的字元貼到游標所在位置。注意:所有與"y"有關的複製命令都必須與"p"配合才能完成複製與貼上功能。 複製程式碼

5) 修改

修改文字物件,用新輸入的文字代替老的文字。它們等價於用刪除命令刪除老文字,然後用i命令插入新文字。注意:輸入修改命令後,就進入到輸入方式。所以輸入新文字後,還要按ESC鍵,才能回到命令方式。

c:替換游標所在處的字元。 複製程式碼

6) 替換

r:替換游標所在處的字元。 R:替換游標所到之處的字元,直到按下ESC 鍵為止。 :n1,n2s/a1/a2/g 將檔案中 n1 到 n2 行中所有 a1 都用 a2 替換 :g/a1/a2/g  將檔案中所有的 a1 都用 a2 替換 複製程式碼

7)常見動作

u    復原前一個動作。(常用,相當於windows Ctrl z) [Ctrl] r    重做上一個動作。(常用,相當於windows Ctrl y) 複製程式碼

3.底行模式下命令

在使用底行模式之前,先按ESC 鍵確定已經處於命令列模式下後,再按:冒號即可進入底行模式。

1)列出行號 set nu

輸入set nu 後,會在檔案中的每一行前面列出行號。

2)跳到檔案中的某一行#

#號表示一個數字,在冒號後輸入一個數字再按回車鍵跳到該行,如輸入數字15,再回車,就會跳到文章的第15 行。

3)查詢字元 / ?

/關鍵字:往游標下方查詢,按n查詢下一個,按N查詢上一個 ?關鍵字:往游標上方查詢,按n查詢下一個,按N查詢上一個

/abc  從游標所在位置向前查詢字串 abc /^abc   查詢以 abc 為行首的行 /abc$   查詢以 abc 為行尾的行 ?abc    從游標所在為主向後查詢字串 abc n   向同一方向重複上次的查詢指令 N   向相反方向重複上次的查詢指定 複製程式碼

4)替換字元 s

:n1,n2s/word1/word2/g   n1 與 n2 為數字。在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2 :1,$s/word1/word2/g 或 :%s/word1/word2/g  從頭找 word1 字串,並將該字串取代為 word2 !(常用) :1,$s/word1/word2/gc 或 :%s/word1/word2/gc    從頭找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者確認 (confirm) 是否需要取代!(常用) 複製程式碼

5)刪除字元 d

:a1,a2d    刪除從 a1 行到 a2 行的文字內容 複製程式碼

6)設定縮排的空格數 set ts=

:set ts=4 設定縮排的空格數為4格 複製程式碼

4. 使用vi編輯器編寫程式碼(具體使用場景)

1)批量加註釋

vim 中批量新增註釋

方法一 :塊選擇模式

批量註釋:

Ctrl v 進入塊選擇模式,然後移動游標選中你要註釋的行,再按大寫的I 進入行首插入模式輸入註釋符號如 // 或 #,輸入完畢之後,按兩下 ESC,Vim 會自動將你選中的所有行首都加上註釋,儲存退出完成註釋。

取消註釋:

Ctrl v 進入塊選擇模式,選中你要刪除的行首的註釋符號,注意 // 要選中兩個,選好之後按 d 即可刪除註釋,ESC 儲存退出。

方法二: 替換命令

批量註釋: :起始行號,結束行號s/^/註釋符/g

取消註釋: :起始行號,結束行號s/^註釋符//g

例子:

1、在 10 - 20 行新增 // 註釋 :10,20s#^#//#g 2、在 10 - 20 行刪除 // 註釋 :10,20s#^//##g 3、在 10 - 20 行新增 # 註釋 :10,20s/^/#/g 4、在 10 - 20 行刪除 # 註釋 :10,20s/#//g 複製程式碼

2)其他常用

在插入模式下:

ctrl   n 自動補全 /p<  插入一個include,並把游標置於<>中間 /im  插入主函式 /ip  插入printf,並自動新增/n,且把游標置於雙引號中間 複製程式碼

編輯模式下快捷鍵:

dw  刪除一個單詞(配合b:將游標置於所在單詞的首部) yw  複製一個單詞(配合p:貼上) 複製程式碼

插入與編輯模式通用:

/rr  執行程式 /rc  儲存並編譯程式(會生成二進位制檔案) 複製程式碼

3)格式化程式碼

vi編輯器預設縮排是8格,若要改成4格,可以參考blog.csdn.net/qq_33141353…

:set ts=n   設定縮排為n個空格,僅在本文件有效 複製程式碼

永久設定,在/etc/vim/vimc檔案中新增set ts=4,此設定永久有效。 複製程式碼

1.格式化全部程式碼 輸入gg, 游標移到檔案頭部; 輸入=; 輸入G(shitf g),整個檔案就格式化了。 2.格式化部分程式碼 游標移到要格式化的第1行程式碼,輸入shitf v,進入視覺化模式; 按j,選中要格式化的所有程式碼; 輸入=,選中的程式碼就被格式化了。

作者:KiraFenvy
   連結:
   https://juejin.cn/post/7091245667305127972
   來源:稀土掘金