VIM/VI 尋找與替換

來源:互聯網
上載者:User

出處:http://blog.sina.com.cn/s/blog_40cccb2f0100nwi3.html


尋找命令:

要自當前游標位置向上搜尋,請使用以下命令:
/pattern Enter
其中,pattern 表示要搜尋的特定字元序列。
要自當前游標位置向下搜尋,請使用以下命令:
?pattern Enter
按下 Enter 鍵後,vi 將搜尋指定的 pattern,並將游標定位在 pattern 的第一個字元處。例如,要向上搜尋 place 一詞,請鍵入:
/place Enter
如果 vi 找到了 place,它將把游標定位在 p 處。要搜尋 place 的其他匹配,請按 n 或 N:
n,繼續朝同一方向搜尋 place。
N,反方向進行搜尋。

4.5.1 搜尋特殊匹配
在上面的樣本中,vi 尋找到包含 place 的任何序列,其中包括 displace、placement 和 replaced。
要尋找單個的 place,請鍵入該單詞,並在其前後各加一個空格:
/ place Enter
要尋找僅出現在行首的 place,請在該單詞前加一個插字元號 (^):
/^place Enter
要尋找僅出現在行尾的 place,請在該單詞後加一個貨幣符號 ($):
/place$ Enter
使用 ^
要逐字搜尋這種帶有插字元號 (^) 或貨幣符號 ($) 的字元,請在字元前加一個反斜線 (\)。反斜線命令 vi 搜尋特殊字元。
使用 $
特殊字元是指在 vi 中具有特殊功能的字元(例如 ^、$、*、/ 和 .)。例如,$ 通常表示“轉至行尾”,但是,如果 $ 前緊跟一個 \,則 $ 只是一個普通的字元。
使用 \
例如,/(No \$ money) 向上搜尋字元序列 (No $ money)。緊跟在 $ 之前的逸出字元 (\) 命令 vi 逐字搜尋貨幣符號。

替換命令:

vi/vim 中可以使用 :s 命令來替換字串。以前只會使用一種格式來全文替換,今天發現該命令有很多種寫法(vi 真是強大啊,還有很多需要學習),記錄幾種在此,方便以後查詢。

:s/vivian/sky/ 替換當前行第一個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

n 為數字,若 n 為 .,表示從當前行開始到最後一行

:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

可以使用 # 作為分隔字元,此時中間出現的 / 不會作為分隔字元

:s#vivian/#sky/#替換當前行第一個 vivian/ 為 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 /): /oradata/apras/替換成/user01/apras1/

 

6. 其它

利用 :s 命令可以實現字串的替換。具體的用法包括:

:s/str1/str2/ 用字串 str2 替換行中首次出現的字串 str1 ----只針對搜尋行,即當前行

:s/str1/str2/g 用字串 str2 替換行中所有出現的字串 str1 ----只針對搜尋行,即當前行

:.,$ s/str1/str2/g 用字串 str2 替換本文當前行到末尾所有出現的字串 str1

:1,$ s/str1/str2/g 用字串 str2 替換本文中所有出現的字串 str1

:g/str1/s//str2/g 功能同上

從上述替換命令可以看到:g 放在命令末尾,表示對搜尋字串的每次出現進行替換;不加 g,表示只對搜尋

字串的首次出現進行替換;g 放在命令開頭,表示對本文中所有包含搜尋字串的行進行替換操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.