vim的全局替换[zz]把字符替换成回车
生活随笔
收集整理的這篇文章主要介紹了
vim的全局替换[zz]把字符替换成回车
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文出自 ??http://blog.csdn.net/shuangde800
?
本文是在學(xué)習(xí)《使用vi編輯器, Lamb & Robbins編著》時(shí)在所記的筆記。 本文內(nèi)容: 基本全局替換 確認(rèn)替換 上下文相關(guān)替換 本文約定: $?+?命令?表示在普通的bash的命令行下 :??+?命令?表示在vim的ex(命令)模式, 按"Ctrl" + ":" 進(jìn)入 ------------------------------------------------------------------------------------------------替換命令的基本語法
在全局替換中,ex編輯器使用指定的字符模式對文件中的每行進(jìn)行檢查。在所有行中發(fā)現(xiàn)模式的位置,ex使用新字符串來替換模式。 全局替換真正使用的是兩個(gè)ex命令是?:g(global全局)和:s(switch替換)。 替換命令的語法如下: :s / old / new / ? 這將把當(dāng)前中模式old的第一次出現(xiàn)修改為new。 ?/(斜桿)是命令不同部分之間的分隔符(當(dāng)斜桿為該行的最后一個(gè)字符時(shí),可不寫) 下面這種形式的替換命令: :s / old / new / g 把當(dāng)前行old的每次出現(xiàn)改為new,而不只是該行的第一個(gè)old。:s命令允許替換串后面帶有選項(xiàng),上面語法中的g代表全局(g選項(xiàng)影響一行中的每個(gè)模式,不要把它與影響文件中所有行的:g命令混淆) 通過在:s命令前加上地址前綴,可以把它的范圍擴(kuò)展到多行。例如下面命令把50行到100行的old的每次出現(xiàn)都改為new: :50, 100 s / old / new / g 下面的命令把整個(gè)文件中的old的每次出現(xiàn)都改為new: :1, $s / old / new / g 我們知道%等價(jià)于1,$,所以上行命令也可以這樣寫: :% s / old / new / g確認(rèn)替換
使用搜索替換命令有時(shí)候會(huì)出錯(cuò),而得到不想要的結(jié)果。所以小心并確認(rèn)文件中需要修改的內(nèi)容是一個(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來滾動(dòng)屏幕的。上下文相關(guān)替換
除了直接使用一個(gè)單詞(或短語)替換另一個(gè),還有稍微復(fù)雜的全局替換語法。這些語法可以對一個(gè)模式進(jìn)行搜索,一旦找到含有模式的行,就可以使用不同與模式的串進(jìn)行替換,我們把這種替換叫做上下文相關(guān)替換。 語法格式如下: :g /pattern/s/old/new/g ???將會(huì)把包含pattern的行中,把所有old替換為new 第一個(gè)g表示是在文件的所有行上執(zhí)行的命令,模式pattern識別要發(fā)生替換的行。在那些包含模式pattern的行上,ex將把old替換(s)為new。最后的g表示在該行上進(jìn)行全部替換。 如果用來進(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的輸入方法是ctrl+V,會(huì)得到^,此時(shí)再按回車.會(huì)得到^M這個(gè)就是回車了 因此把全文件所有str換成str回車的語句是: : 1,$ s/str/str^M/g^M用上面的方法輸入
1,$表示從1到最后一行,s是switch,g是global
轉(zhuǎn)載于:https://www.cnblogs.com/york-hust/p/3929528.html
總結(jié)
以上是生活随笔為你收集整理的vim的全局替换[zz]把字符替换成回车的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Open Search产品评测】-
- 下一篇: 漫谈多线程(中)