vim的使用
基本上 vi/vim 共分為三種模式做粤,分別是命令模式(Command mode)乍楚,輸入模式(Insert mode)和底線(xiàn)命令模式(Last line mode):
啟動(dòng)vim隨即進(jìn)入命令行模式 等同于按Esc鍵菱皆;
命令行模式(Command mode)
切換到輸入模式
i
?切換到輸入模式,修改位置為光標(biāo)所在位置榄棵,即在光標(biāo)處開(kāi)始插入字符?纭!整吆!
a
?切換到輸入模式拱撵,修改位置為光標(biāo)下一位置辉川,光標(biāo)自動(dòng)往下一個(gè)字符。
I
? 切換到輸入模式拴测,調(diào)到某一行行首乓旗。
A
?切換到輸入模式,調(diào)到某一行行末集索。
以下均是在Esc模式下
查找
/find
?向下查找屿愚。小技巧:在炒雞炒雞長(zhǎng)的一行里,方便鼠標(biāo)定位务荆,按i
即可修改妆距,不用一個(gè)一個(gè)字符滑動(dòng)
?find
?向上查找。
n
?代表重復(fù)前一個(gè)搜尋動(dòng)作函匕,比如/find
搭配n
向下查找下一個(gè)娱据。或者用上箭頭+enter
盅惜。
N
?代表『反向』進(jìn)行前一個(gè)搜尋動(dòng)作中剩。,比如/find
搭配N
向上查找下一個(gè)抒寂。
字符的刪除
x
?等同于delete鍵
10x
?連續(xù)向后刪除 10 個(gè)字符结啼。
X
?等同于backspace鍵
行的復(fù)制和刪除
yy
?復(fù)制當(dāng)前行;結(jié)合 p
粘貼所復(fù)制的行數(shù)屈芜! eg:2yy 然后 p **
dd
?刪除當(dāng)前行郊愧;結(jié)合p
粘貼所刪除的行數(shù)!eg:2dd 然后 p** 個(gè)人喜歡這么用沸伏,因?yàn)椴挥脛?dòng)鼠標(biāo)拷貼
8馍骸!毅糟!
yy
搭配p
搭配.
重復(fù)粘貼該行红选;
dd
搭配p
搭配.
重復(fù)刪除光標(biāo)所在行;
替換
:%s/before/after/
?vi里的替換操作(底層命令行模式)姆另,也可用sed -i 's/before/after/' file
(一不小心替換錯(cuò)了喇肋,尷尬,所以最好不要用-i在原文件上操作)實(shí)現(xiàn)迹辐;末尾加g
表示一行內(nèi)全部替換蝶防。!C鞣浴间学!
r
?按完后毫無(wú)反應(yīng),但是卻可以實(shí)現(xiàn)替換光標(biāo)所在字符。
R
?按R后下方出現(xiàn)-- REPLACE --
顯示當(dāng)前不是插入模式低葫,是replace模式详羡。Esc可退出
``?
撤銷(xiāo)和重復(fù)
u
?替換錯(cuò)了怎么辦?嘿悬?用u
撤銷(xiāo)实柠,可多次使用。I普恰V涎巍!
ctrl+r
?退回钢拧,比如我不小心按到u
了蟹漓。
.
?重復(fù)刪除或者復(fù)制
保存和退出
:wq
&& wq!
?保存和強(qiáng)制保存/覆蓋!T茨凇牧牢!
:q
&& :q!
?退出和強(qiáng)制退出!W硕А!
:w new_file_name
?簡(jiǎn)言之另存為伯铣,可保留源文件呻此。方便我忘記復(fù)制,在原流程里改數(shù)據(jù)腔寡,嘎嘎
7傧省!放前!
行的編號(hào)
:set nu
?或者:set number
撤銷(xiāo)使用:set number
忿磅。!F居铩葱她!
:set paste
? VS set nopaste
輸入模式(Insert mode)
??一般大家都會(huì)在環(huán)境設(shè)置里設(shè)置自動(dòng)tab,方便寫(xiě)程序似扔。
配置.vimrc
比如我的.vimrc里:
set showmatch " auto match ()
set smartindent " auto tab
??壞處就是在你從另一個(gè)文檔里粘貼一段代碼到當(dāng)前vi文本里時(shí)吨些,自動(dòng)tab就會(huì)在你原有模塊的基礎(chǔ)上,繼續(xù)補(bǔ)加tab炒辉,然后你就看到了好好的文本變歪了豪墅。所以我最喜歡在Esc模式下用set paste
清除自動(dòng)補(bǔ)加tab功能,然后用set nopaste
還原黔寇。