亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

首頁 慕課教程 Vim 編輯器教程 Vim 編輯器教程 06 Vim 修改、查找與替換

Vim 修改、查找與替換

文本編輯器最基本的功能就是對文件進行增刪改查,前面的小節我們已經講了增刪等相關內容以及操作。這一節我們來看一下修改、查找和替換。

使用過 Word 的人應該很知道,在 Word 中我們使用 ctrl+f 來查找我們需要的內容。但是 Word 的查找功能比較單一,Vim 則提供了更加豐富的查找場景:

  • 高亮查找
  • 大小寫敏感查找
  • 重復查找
  • 預覽查找

1. 查找

使用查找功能我們需要進入普通模式,普通模式如何進入前面的小節已經講了,這里不再過多贅述。下面我們來看下針對不同的如何執行查找操作:

Tips:通模式下按下 : ,這時你會看到窗口的左下角出現了一個 : ,這時我們就可以輸入我們要查找的內容了。

  • 開啟高亮查找:在左下角的 : 后面輸入 set hls,即可高亮顯示查找內容。
  • 開啟預覽查找:在左下角的 : 后面輸入 set incsearch,這時 Vim 會根據輸入內容提前預覽匹配內容,并且實時更新
  • 正向掃描:在左下角的 : 后面輸入/搜索內容,開始從上向下搜索。
  • 反向掃描:在左下角的 : 后面輸入?搜索內容,開始從下向上搜索。
  • 大小寫敏感查找:在左下角的 : 后面輸入/搜索內容\c,查找的結果會大小寫不敏感。
  • 大小寫不敏感查找:在左下角的 : 后面輸入/搜索內容\C,查找的結果會大小寫敏感。

查找小實戰

隨便打開一個文件查找 name/Name:

2. 修改與替換

經常替換操作都是簡單的某個字符串替換。Vim 中提供了很多便捷的小技巧來滿足需求

快捷鍵 含義 備注
r 替換光標下單個字符
cw 修改單個單詞
c$ 修改光標之后行內內容
R 進入替換模式

來看下下面這個案例:進入替換模式,替換單個字符并修改單個單詞

3. substitute 替換命令

除了簡單的快捷鍵替換之外。還有更加強大的命令式替換。這種方式為了處理更加復雜的場景,尤其是結合正則表達式。
substitute 是 Vim 中最常用的搜索和替換的命令??梢钥s寫為 s

替換公式::[range]s[ubstitute]/{pattern}/{string}/[flags]
默認情況下,s 只會作用域當前行的第一個匹配項。
flag選項

選項 含義 備注
g 全局替換 global(也只是針對當前行全局而非全文)
c 每次替換前需要確認 confirm
e 沒有匹配項時不顯示錯誤 error
i 表示忽略大小寫 ignore
I 表示區分大小寫

range 選項

選項 含義 備注
% 執行范圍:全局 這個才是真正意義上的全局
n,m n到m 行替換 :12,33s/time/ting/g
$ 最后一行 :12,$s/time/ting/g
n;/pattern/ n行到下一個匹配patter行 :12;/ting/time/ting/g

實操部分

打開 main.go 文件,并將文件中的 time 全部替換為 ting:

正則表達式實戰

正則表達式會在后面章節中詳細講解。這里只是針對查找場景做展示。
查找 main.go 文件中包含在小括號中的代碼:

Tips: 需要注意這里查找標識符后面的\v: 這個主要為了進入 very magic 模式——也就是符合正常正則表達式規則的模式。詳細部分會在后面正則表達式中詳細講解。

4. 小結

本節是工作中使用比較多的。主要難點還是在于結合正則表達式,本身的規則并不復雜。上述規則基本滿足很多工作要求。Vim 很多哲學都是一脈相承的,只要融會貫通即可。