簡(jiǎn)介
vim是一個(gè)文本編輯器楼誓,它的設(shè)計(jì)理念是命令的組合,熟練使用其命令名挥,一個(gè)鍵盤就能進(jìn)行高效地文本編輯疟羹。
使用
進(jìn)入mac終端,輸入vimtutor按下回車鍵禀倔,會(huì)出現(xiàn)vim基礎(chǔ)使用教程(如下截圖)榄融。以下是一些簡(jiǎn)單的命令筆記。
vim教程截圖.jpeg
在normal模式下:
- 按下i蹋艺、a剃袍、A都可進(jìn)入insert模式黄刚,進(jìn)行文本輸入捎谨,區(qū)別是i是當(dāng)前位置插入,而a是當(dāng)前文字的后面插入(A是該行末尾插入)
- h憔维、j涛救、k、l 對(duì)應(yīng)了光標(biāo)左业扒、下检吆、上雄驹、右的移動(dòng)方向刁品,鍵盤上的上下左右鍵也有相同的移動(dòng)效果
- 按o 在光標(biāo)下方打開新的一行并進(jìn)入insert模式;O在上方插入新行
- :q! 不保存退出
- :wq 保存并退出,:w 即保存
- 按下x 刪除光標(biāo)所在位置的字符
- 按下dw 從光標(biāo)處刪除至一個(gè)單詞的末尾
- 按下e可以使光標(biāo)移動(dòng)到單詞末尾)
- 按下d$ 從當(dāng)前光標(biāo)刪除到末行($從當(dāng)前位置到行末惫东,g_移動(dòng)到本行最后一個(gè)不少空格的字符位置)(0光標(biāo)移動(dòng)到行頭,^ 光標(biāo)移動(dòng)到本行第一個(gè)不是空格的字符位置)
- dd刪除當(dāng)前一個(gè)行,2dd刪除兩行祭示,以此類推
- u撤銷以前的操作偷崩,U 撤銷在一行中所做的操作,ctrl+r 撤銷掉撤銷命令
- y復(fù)制帚呼,p粘貼當(dāng)前光標(biāo)位置之后(P位置之前)(yw可復(fù)制一個(gè)單詞掏缎,yy復(fù)制整行)(dd刪整行,p插入整行)
- r 輸入需要替換的字符煤杀, R 可連續(xù)替換多個(gè)字符且每個(gè)輸入的字符都會(huì)刪除覆蓋掉已有的字符眷蜈。
- c+[number]+motion 更改(刪除的同時(shí),也進(jìn)入插入模式)
- ctrl-g(底部顯示當(dāng)前光標(biāo)行位置)(G跳轉(zhuǎn)到文件最后一行沈自,gg跳轉(zhuǎn)到文件第一行酌儒,輸入行號(hào)+G則是將光標(biāo)移至該行號(hào))
- 輸入 / + 字符串 按下回車鍵,可在當(dāng)前文件中查找該字符串(按n重復(fù)上一次命令酥泛,同一方向查找相同字符串今豆,N反向查找,逆向查找用 ? 代替 / )柔袁,ctrl+o呆躲,回到之前位置,重復(fù)按退多步捶索;ctrl+i 會(huì)跳到較新的位置插掂。
- 輸入%可以查找配對(duì)括號(hào) )、]腥例、}(在程序調(diào)試時(shí)辅甥,這個(gè)功能用來查找不配對(duì)的括號(hào)是很有用的。)
- 輸入 :s/aaa/bbb/g 替換全行的匹配串 aaa為bbb
輸入 :#,#s/aaa/bbb/g 其中 #,# 代表的是替換操作的若干行中首尾兩行的行號(hào)燎竖。
輸入 :%s/aaa/bbb/g 則是替換整個(gè)文件中的每個(gè)匹配串璃弄。
輸入 :%s/aaa/bbb/gc 會(huì)找到整個(gè)文件中的每個(gè)匹配串,并且對(duì)每個(gè)匹配串提示是否進(jìn)行替換构回。 - 輸入 :! 然后緊接著輸入一個(gè)外部命令可以執(zhí)行該外部命令
- v+ motion :w filename 以filename為文件名保存選取的內(nèi)容(v+motion選取內(nèi)容)
- :r filename 在光標(biāo)處插入filename的文件內(nèi)容夏块;:r 還可以讀取外部命令的輸出(:r !ls可以讀取ls命令的輸出)
- :set xxx 可以設(shè)置 xxx 選項(xiàng)。(在選項(xiàng)前加上 no 可以關(guān)閉選項(xiàng): :set noic)一些有用的選項(xiàng)如下:
'ic' 'ignorecase' 查找時(shí)忽略字母大小寫
'is' 'incsearch' 查找短語時(shí)顯示部分匹配
'hls' 'hlsearch' 高亮顯示所有的匹配短語