作為一個(gè)VIM初學(xué)者明也,vim給我的感覺就是命令多而且活宣虾,比bash還要難掌握惯裕。正所謂”工欲善其事,必先利其器“绣硝,且學(xué)習(xí)vim也是后期工程化的需要蜻势,所以它是必須跨過的大山,不會用命令的程序員不是好程序員鹉胖。經(jīng)過基礎(chǔ)和進(jìn)階的學(xué)習(xí)我做了一些總結(jié)握玛。
Vim the Six Billion Dollar editor
Better, Stronger, Faster
傳說中的學(xué)習(xí)vim四步驟:
- 存活
- 感覺良好
- 覺得更好,更強(qiáng)甫菠,更快
- 使用VIM的超能力 :)
啟動vim
在命令行窗口輸入:
vim
進(jìn)入vim
vim xxx
打開vim并創(chuàng)建名為xxx的文件
退出vim方式
-
在插入模式下挠铲,先按ESE到normal模式:
-
:wq
保存退出 -
:q
直接退出 -
!q
強(qiáng)制退出
-
在normal模式下,直接按功能鍵:
X
僅僅保存ZZ
不需要輸入:直接保存退出
vim的模式
- 輸入
i
進(jìn)入插入模式 - 按
ESE
退出當(dāng)前模式寂诱,進(jìn)入normal模式
移動命令
H J K L --左拂苹、下、上痰洒、右
G --跳轉(zhuǎn)到最后一行
50G --移動到50行
gg --跳轉(zhuǎn)到第一行
w --跳轉(zhuǎn)到下一個(gè)單詞開頭
e --下一個(gè)單詞結(jié)尾
0 --數(shù)字0瓢棒,到行頭
$ --到行尾
^ --到第一個(gè)不是blank字符的位置(所謂blank就是指tab、空格丘喻、換行脯宿、回車等)
g --到本行最后一個(gè)不是blank字符的位置
編輯命令
i --在光標(biāo)前插入文本
A --在一行后添加文本
dw --從光標(biāo)處刪除到下一個(gè)單詞起始處,不包括第一個(gè)字符
de --從當(dāng)前位置到單詞末尾泉粉,包括最后一個(gè)字符
dd --刪除本行嗅绰,在功能鍵前加數(shù)字可刪除多行,例如:5dd 刪除5行
r --替換當(dāng)前位置的字符
O --在本行的上方插入新的一行
o --小寫字母搀继,在本行下方插入新的一行
a --在光標(biāo)所在位置之后插入文本
A --在光標(biāo)所在行位置之后插入文本
y --復(fù)制
p --粘貼窘面,可搭配數(shù)字使用,例如3p表示粘貼文本3次
開掛命令
-
100iabc[ESE]
界面會打出100個(gè)abc -
.
可重復(fù)上一次命令叽躯,例如100”abc“.表示重復(fù)再打100個(gè)abc -
3.
重復(fù)三次abc -
ctrl-w
窗口調(diào)轉(zhuǎn) -
ctrl-D
查看可能補(bǔ)全的結(jié)果 -
Tab
使用當(dāng)前補(bǔ)全 -
%
匹配括號移動财边,包括(、{点骑、[酣难,需要先把光標(biāo)移到括號上 -
ra
將當(dāng)前字符替換為a,當(dāng)期字符即光標(biāo)所在字符黑滴。 -
s/old/new/
用old替換new憨募,替換當(dāng)前行的第一個(gè)匹配 -
s/old/new/g
用old替換new,替換當(dāng)前行的所有匹配 -
v
可視化選擇袁辈,可搭配p菜谣、y命令實(shí)現(xiàn)自定義內(nèi)容拷貝粘貼 -
gU
變大寫 -
gu
變小寫 -
:split或:new
打開一個(gè)新窗口,光標(biāo)停在頂層的窗口上 -
:split file或:new file
用新窗口打開文件 -
split
打開的窗口都是橫向的,使用vsplit
可以縱向打開窗口尾膊。
結(jié)束語
- 注意大小寫媳危。有些命令是在normal下輸入的,我們把它叫做功能鍵冈敛。有一些是在插入模式下輸入的待笑,所有帶
:
的命令都在插入模式輸入。注意區(qū)別抓谴。 - 上面是我學(xué)習(xí)的一些常用的命令暮蹂,其中有些命令是可以搭配組合的,需要自己去嘗試癌压,可以在shell輸入
vim tutor
仰泻,學(xué)習(xí)官方的文檔。vim和bash一樣都需要熟能生巧措拇,學(xué)完這兩個(gè)以后可以開始做很多事了我纪。下一篇再來說說,我用它們做了一些什么有意思的事兒丐吓。 - 以上如果有什么錯(cuò)誤浅悉,歡迎留言。