文章轉自:http://blog.csdn.net/lanxinju/article/details/5731843
一、查找
查找指令
/pattern<Enter> :向下查找pattern比對字元串
?pattern<Enter>:向上查找pattern比對字元串
使用了查找指令之後,使用如下兩個鍵快速查找:
n:按照同一方向繼續查找
N:按照反方向查找
字元串比對
pattern是需要比對的字元串,例如:
除此之外,pattern還可以使用一些特殊字元,包括(/、^、$、*、.),其中前三個這兩個是vi與vim通用的,“/”為轉義字元。
二、替換
基本替換
可以使用 #或+ 作為分隔符,此時中間出現的 / 不會作為分隔符
删除文本中的^M
問題描述:對于換行,window下用回車換行(0A0D)來表示,linux下是回車(0A)來表示。這樣,将window上的檔案拷到unix上用時,總會有個^M,請寫個用在unix下的過濾windows檔案的換行符(0D)的shell或c程式。
使用指令:cat filename1 | tr -d “^V^M” > newfile;
使用指令:sed -e “s/^V^M//” filename > outputfilename
需要注意的是在1、2兩種方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必須要手工進行輸入,而不是粘貼。
在vi中處理:首先使用vi打開檔案,然後按ESC鍵,接着輸入指令:
如果上述方法無用,則正确的解決辦法是:
其它用法
從上述替換指令可以看到:
g 放在指令末尾,表示對指定行的搜尋字元串的每次出現進行替換;不加 g,表示隻對指定行的搜尋字元串的首次出現進行替換;
g 放在指令開頭,表示對正文中所有包含搜尋字元串的行進行替換操作。
也就是說指令的開始可以添加影響的行,如果為g表示對所有行;指令的結尾可以使用g來表示是否對每一行的所有字元串都有影響。
三、簡單的vim正規表達式規則
在vim中有四種表達式規則:
magic(/m):除了$.*^之外其他元字元都要加反斜杠
nomagic(/M):除了$^之外其他元字元都要加反斜杠
/v(即 very magic 之意):任何元字元都不用加反斜杠
/V(即 very nomagic 之意):任何元字元都必須加反斜杠
vim預設使用magic設定,這個設定也可以在正規表達式中通過 /m /M /v /V開關臨時切換。例如:
推薦使用預設的magic設定,在這種情況下,常用的比對有:
關于正規表達式的詳細資訊,請參見參考文獻。
參考文獻:
<a href="http://blog.csdn.net/aldenphy/archive/2009/03/24/4019486.aspx">vi替換字元串</a>