更多精彩內容,請關注微信公眾號:后端技術小屋
30分鐘入門Vim
Vim是從vi發展出來的一個文本編輯器,是Linux后端開發人員必會工具之一,被廣大碼農戲稱為編輯器之神(神之編輯器是Emacs,筆者沒用過,看起來段位比Vim更高),本文簡單介紹Vim中不同的模式以及每個模式下的高頻命令,希望能夠引領初學者快速入門,
Vim的模式
Vim中有多種模式,這種獨特的設計容易讓很多初學者產生混淆,僅通過鍵盤,便可在Vim的多種模式之間自由切換,
普通模式
Vim啟動之后的默認模式是普通模式,這一點與大多數編輯器正好相反(默認是插入模式),在這種模式下,用戶可執行移動游標、洗掉文本等操作,例如跳轉到第n行,洗掉第n行資料,
插入模式
在這個模式中,大多數按鍵都會向當前游標處插入文本,
選擇模式
選擇模式與Windows下用滑鼠選中某一段文本相似,Vim的獨特之處在于,只需要通過按鍵即可選中某一段文本,
命令模式
在命令模式下,可以輸入Vim命令并由Vim執行,通常在這種模式下執行搜索、替換、保存檔案、退出檔案等命令
模式之間的切換
- 插入模式下,輸入"Esc",進入普通模式
- 普通模式下,輸入"i"(或"a", "o" 大小寫皆可,但是有不同的含義), 進入插入模式
- 普通模式下,輸入":"(或"/", "?", "!"),進入命令模式
- 普通模式下,輸入"v"(或"V"),進入選擇模式
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則將其轉化為小寫
推薦閱讀
- STL原始碼分析--vector
- zookeeper client原理總結
- redis實作分布式鎖
- 推薦幾個好用的效率神器
- C/C++關鍵字之restrict
- 現代C++之右值語意
- Python亂碼九問
- Linux Shell腳本攻略讀書筆記
- 30分鐘入門GDB
更多精彩內容,請掃碼關注微信公眾號:后端技術小屋,如果覺得文章對你有幫助的話,請多多分享、轉發、在看,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/264039.html
標籤:其他
