摘要:在那些包含模式的行上,將把替換為。最后的表示在該行上進(jìn)行全部替換。如果用來(lái)進(jìn)行搜索的模式與想要修改的模式相同,那么就不必重復(fù)它等價(jià)于還要注意也等價(jià)于可以用第二種方式少輸一些字符參考的全局替換
本文約定:替換命令的基本語(yǔ)法
$?+?命令?表示在普通的bash的命令行下
:??+?命令?表示在vim的ex(命令)模式, 按"Ctrl" + ":" 進(jìn)入
:s + / + 被替換的內(nèi)容 + / + 替換的內(nèi)容 ( + 分隔符 + 模式 ) (其中:s(s表示switch,替換))
當(dāng)前中模式old的第一次出現(xiàn)修改為new:s / old / new / ? (當(dāng)斜桿為該行的最后一個(gè)字符時(shí),可不寫)
當(dāng)前行old的每次出現(xiàn)改為new:s / old / new / g
:s命令允許替換串后面帶有選項(xiàng),g選項(xiàng)影響一行中的每個(gè)模式,不要把它與影響文件中所有行的:g命令混淆
通過在:s命令前加上地址前綴,可以把它的范圍擴(kuò)展到多行。例如下面命令把50行到100行的old的每次出現(xiàn)都改為new:
:50, 100 s / old / new / g
特別的,從第一行到最后一行的多行即為整個(gè)文件
兩種方式
:1, $s / old / new / g
我們知道%等價(jià)于1,$,所以上行命令也可以這樣寫:
:% s / old / new / g
在替換命令尾部加上c?(confirm用于確認(rèn)),在替換每個(gè)old前都會(huì)提示并確認(rèn):
:1, 30 s /old/new/ gc
將會(huì)出現(xiàn)提示replace with hehe (y/n/a/q/l/^E/^Y)???
y替換,n不替換,a替換所有,q放棄,l替換第一個(gè)并進(jìn)入插入模式,^E和^Y是提示你用Ctrl+e或Ctrl+y來(lái)滾動(dòng)屏幕的。
正則替換,匹配字符串可以使用正則,懶得看就用這個(gè):s/pattern/new/,其它參數(shù)和前文一致
更具體的來(lái)說(其實(shí)沒什么用)
語(yǔ)法格式如下(:g(global全局)):
:g /pattern/s/old/new/g ? ?將會(huì)把包含pattern的行中,把所有old替換為new
第一個(gè)g表示是在文件的所有行上執(zhí)行的命令,模式pattern識(shí)別要發(fā)生替換的行。在那些包含模式pattern的行上,ex將把old替換(s)為new。最后的g表示在該行上進(jìn)行全部替換。
如果用來(lái)進(jìn)行搜索的模式與想要修改的模式相同,那么就不必重復(fù)它:
:g/string/s//new/g??等價(jià)于??:g/string/s/string/new/g
還要注意:
:g/string/s//new/g??也等價(jià)于?:% s/string/new/g
可以用第二種方式少輸一些字符
vim的全局替換
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/25098.html
摘要:本文將以此為起點(diǎn),介紹一些替換小技巧。實(shí)話實(shí)說,使用命令來(lái)替換有違于大多數(shù)程序員的習(xí)慣。接下更進(jìn)一步,教多幾個(gè)小技巧。這么一來(lái),替換將僅在當(dāng)前大括號(hào)內(nèi)生效。在替換局部變量時(shí),比起全局替換,這樣的替換方式無(wú)疑會(huì)更高效。 想必用過Vim的人都知道,在Vim里面,以下命令可以替換當(dāng)前文件的內(nèi)容: :[range]s/{要被替換的模式}/{替換的內(nèi)容}/[flags] 其中range指定替換命...
摘要:?jiǎn)栴}復(fù)現(xiàn)拿到的文檔中包含了大量的等字符,形如歷史賬單看起來(lái)亂糟糟的,很不直觀。遵循這樣的格式要正則匹配的部分要替換成的部分參考資料下使用替換文件中的換行符查找和替換命令替換和回車與換行的區(qū)別 問題復(fù)現(xiàn) 拿到的文檔中包含了大量的 、 、 等字符,形如: 歷史賬單 ...
摘要:學(xué)習(xí)整理注意后文中帶尖括號(hào)的描述表示鍵盤按鍵,比如回車是指回車按鍵。輸入文件名回車即可進(jìn)入編輯器編輯該文件。按鍵回車進(jìn)入替換模式可以連續(xù)替換多個(gè)字符。所有的命令都必須敲回車鍵結(jié)束。 前言 本文的初衷 從知道 vim 開始我就有心學(xué)習(xí)并嘗試過幾次,每次都是暫時(shí)的心血來(lái)潮,最終全部不了了之,就連最基本的 vimtutor 我都是學(xué)個(gè)兩三節(jié)就半途而廢,所以這次干脆寫篇文章,利用幾次學(xué)習(xí)把這篇...
摘要:年底了,故事總是會(huì)有很多。因其輕便,擴(kuò)展性,可定制化,一直很受開發(fā)者追捧。高階大神,袖中必有深藏。本文僅對(duì)常用的一些命令做了匯總,的玩法還有很多。參考文檔和的區(qū)別常用命令總結(jié)使用進(jìn)階作者以樂之名本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。 年底了,故事總是會(huì)有很多。 showImg(https://segmentfault.com/img/bVblBht?w=500&h=400); 剛了一波通宵加...
摘要:如果批量就更麻煩。不過這樣設(shè)置會(huì)導(dǎo)致每次用鼠標(biāo)選擇一段文本都會(huì)自動(dòng)進(jìn)入模式,這樣的話我們就沒法復(fù)制到系統(tǒng)剪切板了。這時(shí)候,需要按住鍵然后再用鼠標(biāo)選擇文本,這樣一來(lái)就不會(huì)啟動(dòng)模式,且可以復(fù)制到剪切板。鼠標(biāo)支持問題高版本默認(rèn)是支持鼠標(biāo)滾動(dòng)的。 Leader鍵 參考:http://learnvimscriptthehardw... Vim的默認(rèn)Leader前綴是鍵。說白了,就是一個(gè)快捷命令的...
閱讀 948·2021-11-22 12:09
閱讀 3715·2021-09-27 13:36
閱讀 1406·2021-08-20 09:37
閱讀 4029·2019-12-27 12:22
閱讀 2366·2019-08-30 15:55
閱讀 2371·2019-08-30 13:16
閱讀 2832·2019-08-26 17:06
閱讀 3443·2019-08-23 18:32