linux中Vim如何實(shí)現(xiàn)查找與替換命令

這篇文章主要為大家展示了“l(fā)inux中Vim如何實(shí)現(xiàn)查找與替換命令”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)inux中Vim如何實(shí)現(xiàn)查找與替換命令”這篇文章吧。

成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元哈爾濱做網(wǎng)站,已為上家服務(wù),為哈爾濱各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

Vi/Vim 可以說是文本編輯中的一代傳奇人物,直至現(xiàn)在,它仍然在高級程序員的武器庫中占有一席之地。每個(gè) Linux 發(fā)行版默認(rèn)都包含Vim  ,而且即使你不是 Linux 系統(tǒng)用戶,你也可以安裝 Vim 。

演示文件創(chuàng)建

為了更好的講解后續(xù)內(nèi)容,我們首先需要準(zhǔn)備一個(gè)演示文件。在這里,我生成了一個(gè)包含系統(tǒng)上所有已安裝軟件包的文本文件 PackageList.txt  來作為演示文件。

cat PackageList.txt

linux中Vim如何實(shí)現(xiàn)查找與替換命令

現(xiàn)在,我們在 Vim 中打開這個(gè)文本文件。之后,我們就在這個(gè)文件里進(jìn)行后續(xù)的操作演示。

vim PackageList.txt

linux中Vim如何實(shí)現(xiàn)查找與替換命令

Vim 搜索功能

在 Windows 下,很多軟件的搜索功能可以使用 ctrl+F 組合鍵調(diào)出搜索框,然后完成后續(xù)的搜索。但在 Vim  里,我們需要使用以下命令結(jié)構(gòu)實(shí)現(xiàn)搜索功能:

?<search_string>

例如,我們想要在 PackageList.txt 文件里搜索 python 這個(gè)關(guān)鍵詞,可以這樣操作:

?python

linux中Vim如何實(shí)現(xiàn)查找與替換命令

默認(rèn)情況下,搜索會(huì)定位到一個(gè)離當(dāng)前光標(biāo)最近的一個(gè)匹配結(jié)果。如果我們想要轉(zhuǎn)到下一個(gè)/上一個(gè)搜索結(jié)果,請使用以下按鍵:

  • n &ndash; 尋找下一個(gè)匹配結(jié)果

  • N &ndash; 尋找上一個(gè)匹配結(jié)果

注意:在使用上述按鍵之前,請不要忘記按 Enter 鍵。否則,搜索詞將會(huì)被改變!

linux中Vim如何實(shí)現(xiàn)查找與替換命令

上面的只是 Vim 下搜索的基本功能,如果你認(rèn)為這是它的全部搜索功能,那真是圖樣圖森破。接下來,我們來嘗試一下更強(qiáng)大的搜索功能。

先給出搜索格式:

/\<search_string>/>

linux中Vim如何實(shí)現(xiàn)查找與替換命令

這里,\< 表示字符串開始,/> 表示字符串結(jié)束,中間的就是需要搜索的字符串表達(dá)式。

與前面的示例一樣,使用 n 或 N 來導(dǎo)航搜索結(jié)果。

中間的字符串表達(dá)式,不僅支持直接輸入關(guān)鍵詞,還支持使用通配符。例如,我們要搜索以 python- 開頭的字符串,可以使用 python* 。這里 *  表示匹配任意字符。

/\<python*/>

linux中Vim如何實(shí)現(xiàn)查找與替換命令

搜索結(jié)束后,Vim 會(huì)默認(rèn)將光標(biāo)放在匹配的關(guān)鍵詞的起始字符處。

不喜歡光標(biāo)的默認(rèn)定位?沒關(guān)系,Vim 允許我們更改光標(biāo)定位的默認(rèn)字符位置。

/python/e

linux中Vim如何實(shí)現(xiàn)查找與替換命令

這里,e 的作用是將光標(biāo)定位到匹配關(guān)鍵詞的末尾字符。

不僅如此,使用以下命令模式,你還可以將光標(biāo)定位在搜索結(jié)果的下方或上方。

/<search_string>/+2  or  /<search_string>/-3

linux中Vim如何實(shí)現(xiàn)查找與替換命令

你也可以從搜索匹配結(jié)果的開頭/結(jié)尾偏移光標(biāo)。例如,以下命令將光標(biāo)定位在開頭旁邊的3個(gè)字符處。

/<search_string>/s+3
/<search_string>/b+3

linux中Vim如何實(shí)現(xiàn)查找與替換命令

linux中Vim如何實(shí)現(xiàn)查找與替換命令

linux中Vim如何實(shí)現(xiàn)查找與替換命令

這里,s 表示開頭,+3 表示從開頭開始的第 3 個(gè)字符。b 也代表開始(begin),它的功能類似于 s 。從截圖中也可以看出,Vim 會(huì)自動(dòng)將 b  翻譯為 s 。

如果有興趣從搜索匹配結(jié)果的末尾進(jìn)行偏移,請使用 e (end)。

/<search_string/e-2

下面是對文本文件執(zhí)行搜索的另一種很棒的方法。

:%s/<search_pattern>//gn

linux中Vim如何實(shí)現(xiàn)查找與替換命令

這條命令具體有啥高大上的作用?我們這里先賣個(gè)關(guān)子,請繼續(xù)往下讀。如果你想學(xué)習(xí)更多 Vim  操作,可以私信我回復(fù)「1024」,有我整理的電子書和視頻。

Vim 字符串替換

查找和替換是任意一款文本編輯器的一組常見和必備功能。下面就來講解 Vim 中的字符串替換功能。

Vim 使用以下命令結(jié)構(gòu)實(shí)現(xiàn)替換功能。

:<range> s/<search_string>/<replace_string>/<modifier>
  • range - 定義執(zhí)行“查找和替換”函數(shù)的范圍,有兩個(gè)不同的值 % - 對整個(gè)文件執(zhí)行 < start _line > <  end_line > - 在一組特定的行上面執(zhí)行操作

  • search_string - 需要替換的字符串

  • replace_string - 替換舊字符串的新字符串

  • modifier - 確定替換行為,有幾個(gè)不同的值 g - 全局替換 gc - 在每次更換之前要求確認(rèn) gn - 忽略替換功能并突出顯示查找結(jié)果。

例如,在 PackageList.txt 文件里用 Python3 字符串替換所有 python 字符串。

:%s/python/Python3/g

linux中Vim如何實(shí)現(xiàn)查找與替換命令

linux中Vim如何實(shí)現(xiàn)查找與替換命令

簡單吧?我們再看看下面這條命令。

:%s/python/Python3/gc

linux中Vim如何實(shí)現(xiàn)查找與替換命令

可以看出來,它在底部詢問你是否要進(jìn)行替換操作。這時(shí),你可以選擇一些操作。那這幾個(gè)是代表什么意思呢?我們一個(gè)個(gè)來看。

  • y - 允許執(zhí)行更改。

  • n - 禁止執(zhí)行更改。

  • a - 替換全部。

  • q - 退出任務(wù)。

  • l - 只需替換這種情況。然后,退出。

  • ^E(Ctrl + E) - 向上滾動(dòng)屏幕

  • ^Y(Ctrl + Y) - 向下滾動(dòng)屏幕

接下來,我們來試試范圍這一個(gè)域。其實(shí),我們在前面的例子里,已經(jīng)使用了 % 范圍(對整個(gè)文件范圍)。

如果我們不想在整個(gè)文件范圍進(jìn)行查找替換,如果我們只想在某幾個(gè)特定行進(jìn)行這種操作,需要怎么做?我們可以采用類似于以下命令格式:

:200,250 s/python/Python3/g

linux中Vim如何實(shí)現(xiàn)查找與替換命令

linux中Vim如何實(shí)現(xiàn)查找與替換命令

執(zhí)行完以上操作,Vim 會(huì)將第 200 行開始并在第 250 行結(jié)束的所有 python 替換為 Python3 。

此功能不僅限于一個(gè)詞,還可以完成對多個(gè)關(guān)鍵詞的替換。它的命令格式如下:

:%s/<search_term_1>\|<search_term_2>\|<search_term_3>/<replace_string>/g

比如,讓我們想要將文本中所有 python 和 py 更改為 Python3 。

:%s/python\|py/Python3/g

linux中Vim如何實(shí)現(xiàn)查找與替換命令

linux中Vim如何實(shí)現(xiàn)查找與替換命令

區(qū)分大小寫

本文前面提到的所有替換操作都是區(qū)分大小寫的。例如,Python,python ,PYTHON 等都是不同的。

如果你要忽略大小寫,可以在搜索字符串后面加上一個(gè) \c ,如下:

/<search_term>\c :%s/<search_term>\c/<replace_term>/g

linux中Vim如何實(shí)現(xiàn)查找與替換命令

linux中Vim如何實(shí)現(xiàn)查找與替換命令

但這個(gè)設(shè)置是臨時(shí)性的,Vim 關(guān)閉之后就會(huì)失效。如果你想一勞永逸,也可以從 vimrc文件 直接設(shè)置不區(qū)分大小寫。

set ignorecase

linux中Vim如何實(shí)現(xiàn)查找與替換命令

還有一個(gè)有趣的做法:智能大小寫模式。

set smartcase

linux中Vim如何實(shí)現(xiàn)查找與替換命令

ignorecase 將強(qiáng)制 Vim 忽略大小寫。但是,如果搜索關(guān)鍵詞中只要有大寫字母,smartcase 將使 Vim 再次變?yōu)閰^(qū)分大小寫。

注意:如果要啟用 smartcase,首先需要設(shè)置 ignorecase 。

以上是“l(fā)inux中Vim如何實(shí)現(xiàn)查找與替換命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞名稱:linux中Vim如何實(shí)現(xiàn)查找與替換命令
文章起源:http://muchs.cn/article46/isjohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站用戶體驗(yàn)、微信公眾號靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司