一、什么是Vim
Vim是一個(gè)類似于Vi的著名的功能強(qiáng)大、高度可定制的文本編輯器梆奈,在Vi的基礎(chǔ)上改進(jìn)和增加了很多特性。代碼補(bǔ)全称开、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用乓梨。和Emacs并列成為類Unix系統(tǒng)用戶最喜歡的文本編輯器鳖轰。
二、Vim鍵位圖
三扶镀、Vim的三種模式
Vim 有三種模式蕴侣,分別是命令模式,輸入模式和編輯模式臭觉,這 3 種工作模式可隨意切換昆雀。
1、命令模式
當(dāng)我們用Vim 編輯文件時(shí)蝠筑,默認(rèn)處于命令模式狞膘。此模式下,敲擊鍵盤動(dòng)作會(huì)被識(shí)別為命令什乙,而非輸入字符挽封,可使用方向鍵(↑、↓臣镣、←辅愿、→)或 k、j忆某、h点待、i 移動(dòng)光標(biāo)的位置。
命令模式下常用的幾個(gè)命令:
命令 | 功能描述 |
---|---|
i | 切換到輸入模式弃舒,可以輸入字符 |
x | 刪除當(dāng)前光標(biāo)所在處的字符 |
: | 切換到編輯模式癞埠,可以底部光標(biāo)閃爍處輸入命令 |
2、輸入模式
在命令模式下按 i 鍵進(jìn)入輸入模式,按 Esc 鍵即可返回命令模式燕差。
在輸入模式下遭笋,Vim 可以對(duì)文件執(zhí)行寫操作,按鍵及功能描述見下表徒探。
按鍵 | 功能描述 |
---|---|
i | 在當(dāng)前光標(biāo)所在位置插入隨后輸入的文本 |
I | 相當(dāng)于光標(biāo)移動(dòng)到行首瓦呼,再執(zhí)行 i 命令 |
o | 在光標(biāo)所在行的下面插入新的一行 |
O | 在光標(biāo)所在行的上面插入新的一行 |
a | 在當(dāng)前光標(biāo)所在位置之后插入隨后輸入的文本 |
A | 相當(dāng)于光標(biāo)移動(dòng)到行尾,再執(zhí)行a命令 |
Enter | 回車鍵测暗,換行 |
Backspace | 刪除光標(biāo)前一個(gè)字符 |
Delete | 刪除光標(biāo)后一個(gè)字符 |
Home/End | 移動(dòng)光標(biāo)到行首/行尾 |
Page Up/Page Down | 上/下翻頁(yè) |
Esc | 退出輸入模式央串,切換到命令模式 |
3、編輯模式
在命令模式下按下:(英文冒號(hào))碗啄,進(jìn)入編輯模式质和。
編輯模式可以輸入單個(gè)或多個(gè)字符的命令,可用的命令非常多稚字。在后面使用實(shí)例中會(huì)做介紹饲宿。
按ESC鍵可隨時(shí)退出編輯模式。
四胆描、Vim 使用實(shí)例
1瘫想、打開文件
打開一個(gè)自己編寫的文件,默認(rèn)進(jìn)入命令模式:
[root@wayne:~]# vim myvim.txt
文件的下方會(huì)顯示文件的一些信息昌讲,包括文件的總行數(shù)和字符數(shù)国夜,以及當(dāng)前光標(biāo)所在的位置等。
2短绸、編輯文件
在命令模式之中车吹,按下 i, o, a 中的任意一個(gè)字符進(jìn)入輸入模式,此時(shí)左下角狀態(tài)欄中會(huì)出現(xiàn) –INSERT- 的字樣醋闭。
Vim 插入文本
在輸入模式中窄驹,除了 Esc 鍵之外,其他的按鍵都可以視作為一般的輸入按鍵证逻。
Vim 查找文本
快捷鍵 | 功能描述 |
---|---|
/abc | 從光標(biāo)所在位置向前查找字符串 abc |
/^abc | 查找以 abc 為行首的行 |
/abc$ | 查找以 abc 為行尾的行 |
?abc | 從光標(biāo)所在為主向后查找字符串 abc |
n | 向同一方向重復(fù)上次的查找指令 |
N | 向相反方向重復(fù)上次的查找指定 |
如查找字符串 "new"
Vim 替換文本
快捷鍵 | 功能描述 |
---|---|
:s/old/new | 用new替換當(dāng)前行第一個(gè)old |
:s/a1/a2/g | 將當(dāng)前光標(biāo)所在行中的所有 a1 用 a2 替換 |
:n1,n2s/a1/a2/g | 將文件中 n1 到 n2 行中所有 a1 都用 a2 替換 |
:%s/a1/a2/g | 將文件中所有的 a1 都用 a2 替換 |
:%s/^/xxx/g | 在每一行的行首插入xxx馒吴,^ 表示行首 |
:%s//xxx/g | ?在每一行的行尾插入xxx,/xxx/g 在每一行的行尾插入xxx瑟曲,表示行尾 |
如替換”new” 為 ”old ”
Vim 刪除文本
快捷鍵 | 功能描述 |
---|---|
x | 刪除光標(biāo)所在位置的字符 |
dd | 刪除光標(biāo)所在行 |
ndd | 刪除當(dāng)前行(包括此行)后 n 行文本 |
dG | 刪除光標(biāo)所在行一直到文件末尾的所有內(nèi)容 |
D | 刪除光標(biāo)位置到行尾的內(nèi)容 |
:a1,a2d | 函數(shù)從 a1 行到 a2 行的文本內(nèi)容 |
如按dd刪除第3行
Vim 復(fù)制粘貼文本
快捷鍵 | 功能描述 |
---|---|
p | 將剪貼板中的內(nèi)容粘貼到光標(biāo)后 |
P(大寫) | 將剪貼板中的內(nèi)容粘貼到光標(biāo)前 |
y | 復(fù)制已選中的文本到剪貼板 |
yy | 將光標(biāo)所在行復(fù)制到剪貼板饮戳,此命令前可以加數(shù)字 n,可復(fù)制多行 |
yw | 將光標(biāo)位置的單詞復(fù)制到剪貼板 |
如先按yy洞拨,復(fù)制第3行扯罐,再按p粘貼
3、保存退出
輸入模式是不可以直接切換到編輯模式的烦衣,需要先按下 Esc鍵回到命令模式歹河,此時(shí)左下角的 – INSERT – 會(huì)消失掩浙。再按下:(英文冒號(hào)),進(jìn)入編輯模式秸歧。
命令 | 功能描述 |
---|---|
:wq | 保存并退出 Vim 編輯器 |
:wq! | 保存并強(qiáng)制退出 Vim 編輯器 |
:q | 不保存就退出 Vim 編輯器 |
:q! | 不保存厨姚,且強(qiáng)制退出 Vim 編輯器 |
:w | 保存但是不退出 Vim 編輯器 |
:w! | 強(qiáng)制保存文本 |
:w filename | 另存到 filename 文件 |
x! | 保存文本键菱,并退出 Vim 編輯器 |
ZZ | 直接退出 Vim 編輯器 |
五谬墙、Vim 其他按鍵說(shuō)明
快捷鍵 | 功能描述 |
---|---|
:set nu | 顯示行號(hào),設(shè)定之后经备,會(huì)在每一行的前綴顯示該行的行號(hào) |
:set nonu | 與 set nu 相反拭抬,為取消行號(hào)! |
[Ctrl] + [f] | 屏幕『向下』移動(dòng)一頁(yè)侵蒙,相當(dāng)于 [Page Down]按鍵 (常用) |
[Ctrl] + [b] | 屏幕『向上』移動(dòng)一頁(yè)造虎,相當(dāng)于 [Page Up] 按鍵 (常用) |
[Ctrl] + [d] | 屏幕『向下』移動(dòng)半頁(yè) |
[Ctrl] + [u] | 屏幕『向上』移動(dòng)半頁(yè) |
+ | 光標(biāo)移動(dòng)到非空格符的下一行 |
- | 光標(biāo)移動(dòng)到非空格符的上一行 |
0 或功能鍵[Home] | 這是數(shù)字『 0 』:移動(dòng)到這一行的最前面字符處 (常用) |
$ 或功能鍵[End] | 移動(dòng)到這一行的最后面字符處(常用) |
H | 光標(biāo)移動(dòng)到這個(gè)屏幕的最上方那一行的第一個(gè)字符 |
M | 光標(biāo)移動(dòng)到這個(gè)屏幕的中央那一行的第一個(gè)字符 |
L | 光標(biāo)移動(dòng)到這個(gè)屏幕的最下方那一行的第一個(gè)字符 |
G | 移動(dòng)到這個(gè)檔案的最后一行 |
nG | n 為數(shù)字。移動(dòng)到這個(gè)檔案的第 n 行 |
gg | 移動(dòng)到這個(gè)檔案的第一行纷闺,相當(dāng)于 1G 命令 |
u | 撤銷前一個(gè)動(dòng)作(常用) |
[Ctrl]+[r] | 恢復(fù)上一個(gè)動(dòng)作(常用) |
. | 重復(fù)前一個(gè)動(dòng)作 (常用) |
以上算凿,如果覺得對(duì)你有幫助,點(diǎn)個(gè)贊再走吧犁功,這樣@知微之見也有更新下去的動(dòng)力氓轰!
也歡迎私信我,一起交流波桩!