1. 前言
本文主要講解vim怎麼查找與替換文字。
2. vim查找與替換
讓我們從查看Vim中的搜索和執行搜索和替換操作開始。您可以使用/searchstring在普通模式下進行搜索關鍵詞searchstring。這將向前搜索文件中的關鍵詞searchstring。同樣地,運行?searchstring將對文件進行反向搜索。
在運行一次搜索之後,您可以在命令模式下使用n來重複搜索,或者使用n來反轉方向。
當您希望搜索一個文本字符串並將其替換為另一個文本字符串時,可以使用以下語法:[range]s/search/replace/。範圍是可選的;如果只運行:s/search/replace/,它將只搜索當前行並只匹配某個術語的第一次出現。search代表要查找的關鍵詞,replace代表要替換的關鍵詞。
大多數情況下,這是不夠的,所以您可以添加一個像這樣的範圍:
:8,10s/search/replace/g
search代表要查找的關鍵詞,replace代表要替換的關鍵詞。
在這個例子中,範圍是從第8行到第10行。我還添加了“global”選項,即語法中的g,它告訴Vim替換一行中的每個事件,而不僅僅是第一個事件。在不添加g的情況下,您的搜索將只匹配任何給定行的字符串的第一個實例。
另一種指定範圍的方法是輸入可視模式並選擇要搜索的行,然後按:以進入命令模式。從普通模式進入可視模式,按v鍵選擇常規可視模式,或按v鍵選擇行模式,或按Ctrl-v鍵選擇塊模式。然後在可視模式下選擇範圍並按:,然後按您希望使用的搜索命令。
:%s/search/replace/g
您也可能希望在Vim進行替換之前得到確認。為此,將confirm (c)選項添加到搜索和替換命令的末尾::%s/search/replace/gc。當你運行這個搜索時,Vim會給你一個類似如下的提示:
replacewithfoo(y/n/a/q/l/^E/^Y)?
“y”和“n”是確認與拒絕,但是其他的呢?告訴Vim繼續和替換所有實例匹配的字符串,回答的。如果你意識到你並不真的想要改變,你可以告訴Vim使用q退出操作。
^E和^Y允許你使用Ctrl-e和Ctrl-y來滾動文本。
3. vim查找與替換的其它技巧
Vim中的搜索默認將光標放在匹配字符串的第一個字符上;如果您搜索Debian,它會將光標放在d上,這通常是可以的,但是Vim有一些選項來抵消從匹配字符串開始的光標位置。
要找到匹配字符串中的最後一個字符,而不是開頭,請在搜索中添加/e:
/Debian/e
這將把光標放在n上而不是d上。Vim還允許您通過行或從字符串的開頭或結尾指定光標偏移量。要使光標停留在匹配字符串上方的兩行,例如,使用/string/-2。要將光標放在字符串下面兩行,使用/string/+2。
若要從字符串開頭偏移,請使用所需的偏移量添加/b或/s。例如,要從搜索開始移動三個字符,可以使用/string/s+3或/string/b+3 ," s "表示" start開始 "或" b "表示" begin開始 "。要從字符串的末尾開始計數,可以使用/e,這樣/string/e-3就會將光標放在匹配字符串的最後一個字符的第三個字符上。
4. 總結
通過本文,您應該可以掌握到如何使用vim查找與替換文字了吧?
本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:
https://www.linuxrumen.com/rmxx/1557.html
點擊瞭解更多,快速查看更多的技術文章列表。
閱讀更多 Linux學習教程 的文章