查找
在normal模式下按下 / 即可進(jìn)入查找模式,輸入要查找的字符串并按下回車。 Vim會(huì)跳轉(zhuǎn)到第一個(gè)匹配。按 n查找下一個(gè)灼擂,按下N查找上一個(gè)。
Vim查找支持正則表達(dá)式觉至,例如 /vim$ 匹配行尾的"vim"缤至。 需要查找特殊字符需要轉(zhuǎn)義,例如/vim$匹配"vim$"。
注意查找回車應(yīng)當(dāng)用\n领斥,而替換為回車應(yīng)當(dāng)用\r(相當(dāng)于<CR>)嫉到。
大小寫敏感查找
在查找模式中加入\c表示大小寫不敏感查找,\C表示大小寫敏感查找月洛。例如:
/foo\c
將會(huì)查找所有的"foo","FOO","Foo"等字符串何恶。
查找當(dāng)前單詞
在normal模式下按下 * 即可查找光標(biāo)所在單詞(word), 要求每次出現(xiàn)的前后為空白字符或標(biāo)點(diǎn)符號(hào)嚼黔。例如當(dāng)前為foo细层, 可以匹配foo bar中的foo,但不可匹配foobar中的foo唬涧。 這在查找函數(shù)名疫赎、變量名時(shí)非常有用。
按下g*即可查找光標(biāo)所在單詞的字符序列碎节,每次出現(xiàn)前后字符無要求捧搞。 即foo bar和foobar中的foo均可被匹配到。
查找和替換
:s(substitute)命令用來查找和替換字符串狮荔。語法如下:
:{作用范圍}s/{目標(biāo)}/{替換}/{替換標(biāo)志}
例如:%s/foo/bar/g會(huì)在全局范圍(%)查找foo并替換為bar胎撇,所有出現(xiàn)都會(huì)被替換(g)。
作用范圍
作用范圍分為當(dāng)前行殖氏、全文晚树、選區(qū)等等。
當(dāng)前行:
:s/foo/bar/g
全文
:%s/foo/bar/g
選區(qū)雅采,在Visual模式下選擇區(qū)域后輸入:爵憎,Vim即可自動(dòng)補(bǔ)全為 :'<,'>。
:'<,'>s/foo/bar/g
2-11 行
:5,12s/foo/bar/g
當(dāng)前行.與接下來兩行+2:
:.,+2s/foo/bar/g
替換標(biāo)志
上文中命令結(jié)尾的g即是替換標(biāo)志之一婚瓜,表示全局global替換(即替換目標(biāo)的所有出現(xiàn))宝鼓。 還有很多其他有用的替換標(biāo)志:
空替換標(biāo)志表示只替換從光標(biāo)位置開始,目標(biāo)的第一次出現(xiàn):
:%s/foo/bar
i表示大小寫不敏感查找闰渔,I表示大小寫敏感:
:%s/foo/bar/i
# 等效于模式中的\c(不敏感)或\C(敏感)
:%s/foo\c/bar
c表示需要確認(rèn)席函,例如全局查找"foo"替換為"bar"并且需要確認(rèn):
:%s/foo/bar/gc
回車后Vim會(huì)將光標(biāo)移動(dòng)到每一次"foo"出現(xiàn)的位置铐望,并提示
replace with bar (y/n/a/q/l/^E/^Y)?
按下y表示替換冈涧,n表示不替換,a表示替換所有正蛙,q表示退出查找模式督弓, l表示替換當(dāng)前位置并退出。E與Y是光標(biāo)移動(dòng)快捷鍵