一、多行注釋與多行取消
?多行注釋
a). 進(jìn)入命令行模式,按ctrl + v進(jìn)入 visual block模式(可視快模式),然后按j, 或者k選中多行,把需要注釋的行標(biāo)記起來(lái)
b). 按大寫字母i急前,再插入注釋符,例如//
c). 按esc鍵就會(huì)全部注釋了(我的是按兩下)
取消多行注釋:
a). 進(jìn)入命令行模式瀑构,按ctrl + v進(jìn)入 visual block模式(可視快模式)裆针,按小寫字母L橫向選中列的個(gè)數(shù)刨摩,例如 // 需要選中2列
b). 按字母j,或者k選中注釋符號(hào)
c) . 按d鍵就可全部取消注釋
二世吨、查找字符或者字符串
普通查找
命令模式下澡刹,/ (向前(下)) 或者 ? (向后(上)) 耘婚,輸入字符串罢浇,Enter
取消查找后字符串的高亮顯示 ?:st noh
全詞匹配
如果你輸入 “/str”,你也可能找到 “strcmp 沐祷、strncmp”等嚷闭。
要找到以 “str” 結(jié)尾的單詞,可以用:/str\>
“\>” 是一個(gè)特殊的記號(hào)赖临,表示只匹配單詞末尾胞锰。類似地,”\<” 只匹配單詞的開頭兢榨。
一次嗅榕,要匹配一個(gè)完整的單詞 “str”,只需:/\< str\>
?vim 查找默認(rèn)是區(qū)分大小寫的吵聪。
如果不區(qū)分大小寫凌那,輸入: set ignorecase
恢復(fù)區(qū)分大小寫,輸入:: set noignorecase
三吟逝、匹配案怯、跳轉(zhuǎn)
1. % 光標(biāo)移到括號(hào)上面,然后按 shift+% 就能夠跳轉(zhuǎn)到相配對(duì)的括號(hào)
2. gD?跳轉(zhuǎn)到局部變量的定義處
3. gg 跳轉(zhuǎn)到開頭
4. G 跳轉(zhuǎn)的末尾
5. 0 跳轉(zhuǎn)至行首
6. $ 跳轉(zhuǎn)至行尾
7. ^ 跳轉(zhuǎn)至行第一個(gè)非空字符
8. >增加縮進(jìn),"n>"表示增加以下n行的縮進(jìn)
?9. <減少縮進(jìn),"n<"表示減少以下n行的縮進(jìn)
四澎办、vim輔助設(shè)置
1. :set num 顯示行號(hào)
2. :set list 顯示空格、換行符等
五金砍、多行復(fù)制
命令行模式下輸入 :2,5 co 9
復(fù)制第2行到第5行之間的內(nèi)容到第9行后面局蚀。
六、多行刪除
方法<一> :
? ? ? ? ? 光標(biāo)所在行恕稠,dd
? ? ? ? ?光標(biāo)所在行以下的N行琅绅,Ndd
? ? ? ? ?dG刪除當(dāng)前行至最后一行
方法<二> :
? ? ? ? ?單行刪除,:1(待刪除行)d
? ? ? ? ?多行刪除 鹅巍,:1,9d
七千扶、替換字符串 【可以與字符串匹配技巧使用】
vim中字符串的替換:
a):s/Replaced/ToBeReplaced/ 替換當(dāng)前行第一個(gè) Replaced 為 ToBeReplaced
b):s/Replaced/ToBeReplaced/g 替換當(dāng)前行所有 Replaced 為 ToBeReplaced
c):n,$s/Replaced/ToBeReplaced/ 替換第 n 行開始到最后一行中每一行的第一個(gè) Replaced 為 ToBeReplaced
d):n骆捧,$s/Replaced/ToBeReplaced/g 替換第 n 行開始到最后一行中每一行所有 Replaced 為 ToBeReplaced
e):%s/Replaced/ToBeReplaced/(等同于 :g/Replaced/s//ToBeReplaced/) 替換每一行的第一個(gè) Replaced 為 ToBeReplaced
f):%s/Replaced/ToBeReplaced/g(等同于 :g/Replaced/s//ToBeReplaced/g) 替換每一行中所有 Replaced 為 ToBeReplaced
八澎羞、查找字符串出現(xiàn)次數(shù)
在所有行中查找string出現(xiàn)的次數(shù)
:%s/string/&/gn
在m和n行之間查找 string 出現(xiàn)的次數(shù)
:m,ns/string/&/gn
九、 把外部文件讀入 Vim
?Vim 中讀取另一個(gè)文件的內(nèi)容非常方便敛苇。切換到正常模式妆绞,然后按 :read。使用此快捷鍵你不需要手動(dòng)打開文件來(lái)復(fù)制內(nèi)容。
:read test.txt
十括饶、 把命令的結(jié)果讀入 Vim
切換到正常模式株茶,然后輸入 :read !command 即可把 command 的結(jié)果輸入到 vim 中。
十一图焰、切換到上次修改的位置
切換到正常模式启盛,輸入 g; 來(lái)即可切換到上次修改的位置。
后續(xù)使用其他技巧繼續(xù)補(bǔ)充技羔!
十二僵闯、vim?自動(dòng)補(bǔ)全+ ctags
ctrl + N?
外層目錄下?ctags -R * ,?會(huì)生成tags文件,vim?打開code文件堕阔,:set tags = ${path}/tags , ctrl + ]?可以跳轉(zhuǎn)到固定的函數(shù)定義棍厂,ctrl + t?返回上一個(gè)ctrl + ]?處。