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