更多精彩內容,請關注微信公衆號:後端技術小屋redis
Vim是從vi發展出來的一個文本編輯器,是Linux後端開發人員必會工具之一,被廣大碼農戲稱爲編輯器之神(神之編輯器是Emacs,筆者沒用過,看起來段位比Vim更高)。本文簡單介紹Vim中不一樣的模式以及每一個模式下的高頻命令,但願可以引領初學者快速入門。vim
Vim中有多種模式,這種獨特的設計容易讓不少初學者產生混淆。僅經過鍵盤,即可在Vim的多種模式之間自由切換。後端
Vim啓動以後的默認模式是普通模式,這一點與大多數編輯器正好相反(默認是插入模式)。在這種模式下,用戶可執行移動光標、刪除文本等操做。例如跳轉到第n行,刪除第n行數據。bash
在這個模式中,大多數按鍵都會向當前光標處插入文本。微信
選擇模式與Windows下用鼠標選中某一段文本類似。Vim的獨特之處在於,只須要經過按鍵便可選中某一段文本。編輯器
在命令模式下,能夠輸入Vim命令並由Vim執行。一般在這種模式下執行搜索、替換、保存文件、退出文件等命令分佈式
在普通模式下,可執行如下命令可以使光標快速到達目標處:函數
gg 跳轉到當前文件第一行 G 跳轉到當前文件最後一行 <n>% 跳轉到當前文件的n%處 ^ 跳到光標當前行的開始 $ 跳到光標當前行的結尾 f <char> 跳轉到當前行光標後第一個<char>的前一個位置 * 光標所在處單詞高亮,並跳轉到下一個相同單詞處 # 光標所在處單詞高亮,並跳轉到上一個相同單詞處 % 跳轉當前光標處括號("[", "{", "(")相配對的括號 { 跳轉到當前段落的開頭 } 跳轉到當前段落的結尾 ( 跳轉到當前句子的開頭 ) 跳轉到當前句子的結尾 [[ 跳轉至上一個函數/類(要求C++代碼中'{'必須單獨佔一行) ]] 跳轉至下一個函數(要求同上) CTRL + O 跳轉到歷史光標位置列表的前一個位置處 CTRL + I 跳轉到歷史光標位置列表的後一個位置處 mx 設置書籤,x只能是a-z的26個字母 `x 跳轉到書籤處 zR 展開代碼摺疊
在普通模式下,可執行如下命令對文件進行編輯工具
x 刪除光標位置的字符 dw 刪除光標位置的單詞 dt<char> 刪除光標以後到第一個字符<char>中間的全部文本(不包括<char>) dd 刪除當前行 <n>dd 刪除n行 dgg 刪除文件第一行到當前行的全部文本 dG 刪除當前行到文件最後一行的全部文本 >> 當前代碼行增長縮進 << 當前代碼行減少縮進 n>> 對n行增長縮進 n<< 對n行減少縮進 = 格式化當前行代碼 r<char> 對光標位置的字符進行替換,新字符爲<char> yy 將當前行復制到緩衝區 <n>yy 複製n行到緩衝區 p 將緩衝區複製到下一行 P 將緩衝區複製到上一行 J 將下一行文本合併到當前行 o 在光標下一行增長一空行, 光標跳轉至空行開頭,並進入插入模式 O 在光標上一行增長一空行, 光標跳轉至空行開頭,並進入插入模式
在選擇模式下,可執行如下命令進行文本選擇源碼分析
v 按v進入行選擇模式,接着按Up或者Down鍵選擇多行 V 按V進入列選擇模式,接着按UP或者Down鍵選擇行範圍,按Left或Right鍵選擇列範圍。
當選中了目標文本以後,咱們即可對選中文本進行復制(y與p組合)、刪除(d)、改寫。
在命令模式下,可執行如下命令對文本進行搜索和替換
/<keyword> 文件中向下搜索<keyword> ?<keyword> 文件中向上搜索<keyword> n 若是使用`/<keyword>`搜索,跳轉到匹配列表的下一個位置;不然跳轉到匹配列表的上一個位置 N 若是使用`/<keyword>`搜索,跳轉到匹配列表的上一個位置;不然跳轉到匹配列表的下一個位置 /c<keyword> 文件中搜索<keyword>,忽略大小寫 :s/keyword1/keyword2/g 將文件中的keyword1所有替換成keyword2 :1,100s/keyword1/keyword2/g 將文件中1到100行的keyword1所有替換成keyword2 :1,100s/keyword1/keyword2/gc 將文件中1到100行的keyword1替換成keyword2,針對每次替換顯示確認對話框 :!<bash command> 退出vim窗口後執行bash命令,再返回vim窗口 :%!xxd 以十六進制查看文件內容 :%!xxd -r 恢復原狀 :set fileencoding 查看當前文件編碼 :goto <offset> 跳轉到文件中偏移量爲<offset>的位置
格式化代碼
ggvG= 格式化文件中全部代碼
在文本中插入一列
V 首先按V進入列選擇模式,而後經過Left/Right, Up/Down選擇插入列的位置 I 按I進行插入模式,而後輸入文本abc,可看到全部行都插入了一列abc
多行復制
v 首先按v進入行選擇模式,而後經過Up/Down鍵選擇多行 y 將選中的多行復制到緩衝區中 光標跳轉到要粘貼的位置 p 將緩衝區中的多行復制到光標位置
將某列文本轉化成大寫/小寫
V 按V進入列選擇模式,而後經過Left/Right, Up/Down選擇插入列的位置 U 按U將選中的一列文本轉化爲大寫;按u則將其轉化爲小寫
推薦閱讀
更多精彩內容,請掃碼關注微信公衆號:後端技術小屋。若是以爲文章對你有幫助的話,請多多分享、轉發、在看。