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