一、 字符串的查找
1. vim 中用 / 和 ? 來查找字符串,兩者的區別是:
/string 會高亮顯示光標后匹配的第一個字符串,回車后光標移到該字符串的第一個字母;
?string 會高亮顯示光標前匹配的第一個字符串,回車后光標移到該字符串的第一個字母。
在回車之后,按n鍵同方向轉到下一個匹配的字符串,按N鍵反方向轉到上一個匹配的字符串。
2. 用命令 :set ic 和 :set noic 來分別設置查找時不區分和區分大小寫。
如果查找特殊字符,如 ^、$、*、/ 和 .,需要在前面加 \ 來轉義。
二、字符串的替換
1. vim 中可用 :s 命令來替換字符串,具體如下:
:s/str1/str2/ 替換當前行第一個 str1 為 str2
:s/str1/str2/g 替換當前行中所有 str1 為 str2
:m,ns/str1/str2/ 替換第 n 行開始到最后一行中每一行的第一個 str1 為 str2
:m,ns/str1/str2/g 替換第 n 行開始到最后一行中所有的 str1 為 str2
(注:m和n 為數字,若m為 .,表示為當前行開始;若n為$,則表示到最后一行結束)
如果使用 # 作為分隔符,則中間出現的 / 不會作為分隔符,比如:
:s#str1/#str2/# 替換當前行第一個 str1/ 為 str2/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
2. 其他
:%s/str1/str2/(等同於 :g/str1/s//str2/) 替換每一行的第一個 str1 為 str2
:%s/str1/str2/g(等同於 :g/str1/s//str2/g 和 :1,$ s/str1/str2/g ) 替換文中所有 str1 為 str2
從替換命令可以看到,g 放在命令末尾,表示對搜索字符串的每次出現進行替換;不加 g,表示只對搜索
字符串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜索字符串的行進行替換操作。
3.回車換行符\n
:%s/\\n/str/g
:%s/str/\\n/g
即使使用gedit工具也是替換\\n(代表回車換行符\n)
4.舉例說明:
替換文檔中所有的/n為\n
:%s#/n#\\n#g
事實上查找替換中的分隔符是可以換成其他符號(不常用的其他符號)的,比如:@,&,#等