Vi 和 Vim 編輯器:12 個強大的查找和替換示例

      網友投稿 1879 2025-03-31

      Vim 通常被稱為文本編輯器,而不是文本創建器。為什么 ?因為我們花費大量時間編輯現有文本而不是創建新文本。在文本編輯中,文本/模式替換成為至關重要的部分。


      在本文中,讓我們回顧一下如何在Vi 和 Vim 編輯器中執行基本和高級文本和模式替換功能。使用 12 個非常實用且功能強大的文本替換示例來解釋這些功能。

      vim 編輯器中文本替換的語法:

      :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

      以下是三個可能的標志。

      [c]確認每次替換。

      [g]替換該行中出現的所有內容。

      [i]忽略模式的大小寫。

      示例 1. 用整個文件中的另一個文本替換所有出現的文本

      這是 Vi 編輯器中文本替換的基本用法。當您希望將特定文本替換為整個文件中的另一個文本時,您可以使用以下序列。

      :%s/old-text/new-text/g

      %s?– 指定所有行。將范圍指定為 '%' 意味著在整個文件中進行替換。

      g?– 指定行中的所有出現。使用 'g' 標志,您可以替換整行。如果未使用此 'g' 標志,則僅替換該行中第一次出現的位置。

      示例 2. 在一行中用另一個文本替換一個文本

      當您希望以不區分大小寫的方式將特定文本替換為一行中的另一個文本時。不指定范圍意味著僅在當前行中進行替換。使用 'i' 標志,您可以使替代搜索文本不區分大小寫。

      :s/I/We/gi

      Vi 和 Vim 編輯器:12 個強大的查找和替換示例

      示例 3. 用行范圍內的另一個文本替換一個文本

      使用范圍,您只能使替換中受影響的行范圍。指定 1, 10 作為范圍意味著只在第 1 – 10 行進行替換。

      :1,10s/helo/hello/g

      示例 4. 通過視覺選擇行將一個文本替換為另一個文本

      您還可以通過視覺選擇這些行來選擇特定的行。在命令模式下按 CTRL + V,使用導航鍵選擇要替換的文件部分。按 ':' 它將自動形成為 :'<,'> 然后你可以使用正常的替代作為

      :'<,'>s/helo/hello/g

      示例 5. 將一個文本替換為另一個文本僅第 1 個 X 行

      在替換中使用計數,如果在替換中指定計數 N 則表示從光標當前位置開始在 N 行中進行替換。從當前行開始替換 4 行。

      :s/helo/hello/g 4

      示例 6. 僅替換整個單詞而不是部分匹配

      讓我們假設您只想將下面提到的原始文本中的整個單詞“his”更改為“her”。如果您進行標準替換,除了將他更改為她之外,還會將 This 更改為 Ther,如下所示。

      Original Text: This is his idea :s/his/her/g Translated Text: Ther is her idea

      Original Text: This is his idea :s/\/her/ Translated Text: This is her idea

      注意::您應該用 < 和 > 將單詞括起來,這將強制替換僅搜索完整單詞而不是任何部分匹配。

      示例 7. 使用正則表達式將 word1 或 word2 替換為新單詞

      在下面的示例中,它將翻譯任何出現的 good 或 nice 將替換為 awesome。

      Original Text: Linux is good. Life is nice. :%s/\(good\|nice\)/awesome/g Translated Text: Linux is awesome. Life is awesome.

      您還可以通過指定正則表達式來進行替換。以下示例將 hey 或 hi 替換為 hai。請注意,這不會替換“他們”、“這個”等詞。

      :%s/\<\(hey\|hi\)\>/hai/g

      \< - 字邊界。

      \|?– “邏輯或”(在這種情況下嘿或嗨)

      示例 8. Vim 編輯器中的交互式查找和替換

      您可以使用替換中的“c”標志執行交互式查找和替換,這將要求確認進行替換或跳過它,如下所述。在這個例子中,Vim 編輯器將全局查找單詞 'awesome' 并將其替換為 'wonderful'。但它只會根據您的輸入進行替換,如下所述。

      :%s/awesome/wonderful/gc replace with wonderful (y/n/a/q/l/^E/^Y)?

      y - 將替換當前突出顯示的單詞。替換后它會自動突出顯示與搜索模式匹配的下一個單詞

      n – 不會替換當前突出顯示的單詞。但它會自動突出顯示與搜索模式匹配的下一個單詞

      a – 將自動替換所有符合搜索條件的突出顯示的詞。

      l - 這將僅替換當前突出顯示的單詞并終止查找和替換工作。

      示例 9. 用其行號替換所有行。

      當字符串以 '\=' 開頭時,應將其計算為表達式。使用“line”函數我們可以獲得當前的行號。通過結合這兩個功能,替換對所有行進行行編號。

      :%s/^/\=line(".") 。“。 “/G

      注意:這與“:set number”不同,它不會將行號寫入文件。但是當您使用此替換時,您將在文件中永久使用這些行號。

      示例 10. 將特殊字符替換為其等效值。

      用 $HOME 變量值替換 ~ 。

      Original Text: Current file path is ~/test/ :%s!\~!\= expand($HOME)!g Translated Text: Current file path is /home/ramesh/test/

      您可以使用 expand 函數來使用所有可用的預定義和用戶定義的變量。

      示例 11. 在插入新項目時更改編號列表中的序列號

      假設您在文本文件中有一個如下所示的編號列表。在本例中,假設您想在第 2 條之后添加一個新行。為此,您應該相應地更改所有其他文章的數量。

      vi / vim tips & tricks series Article 1: Vi and Vim Editor: 3 Steps To Enable Thesaurus Option Article 2: Vim Autocommand: 3 Steps to Add Custom Header To Your File Article 3: 5 Awesome Examples For Automatic Word Completion Using Ctrl-X Article 4: Vi and Vim Macro Tutorial: How To Record and Play Article 5: Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin Article 6: How To Add Bookmarks Inside Vim Editor Article 7: Make Vim as Your Bash-IDE Using bash-support Plugin Article 8: 3 Powerful Musketeers Of Vim Editor ? Macro, Mark and Map Article 9: 8 Essential Vim Editor Navigation Fundamentals Article 10: Vim Editor: How to Correct Spelling Mistakes Automatically Article 11: Transfer the Power of Vim Editor to Thunderbird for Email Article 12: Convert Vim Editor to Beautiful Source Code Browser

      第 3 篇文章“使用 perl-support.vim 插件使 Vim 成為您的 Perl IDE”。所以當你想

      增加它時,你要把“第3條”改為“第4條”,將“第4條”改為“第5條”,將“第12條”改為“第13條”。

      這可以通過以下 vim 替換命令來實現。

      :4,$s/\d\+/\=submatch(0) + 1/

      范圍:4,$ – 第 4 行到最后一行。

      搜索模式 - \d\+ - 數字序列

      要替換的模式 - \=submatch(0) + 1 - 獲取匹配的模式并將其加 1。

      標志 - 因為沒有標志,默認情況下它只替換第一次出現。

      執行substitute語句后文件會變成這樣,可以

      添加第3條。

      vi / vim tips & tricks series Article 1: Vi and Vim Editor: 3 Steps To Enable Thesaurus Option Article 2: Vim Autocommand: 3 Steps to Add Custom Header To Your File Article 4: 5 Awesome Examples For Automatic Word Completion Using Ctrl-X Article 5: Vi and Vim Macro Tutorial: How To Record and Play Article 6: Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin Article 7: How To Add Bookmarks Inside Vim Editor Article 8: Make Vim as Your Bash-IDE Using bash-support Plugin Article 9: 3 Powerful Musketeers Of Vim Editor ? Macro, Mark and Map Article 10: 8 Essential Vim Editor Navigation Fundamentals Article 11: Vim Editor: How to Correct Spelling Mistakes Automatically Article 12: Transfer the Power of Vim Editor to Thunderbird for Email Article 13: Convert Vim Editor to Beautiful Source Code Browser

      注意:檢查替換將 3 改為 4、4 改為 5 等?,F在我們可以添加一個新行作為第 3 條提及它,而無需進行任何手動更改。

      示例 12. 替換以大寫開頭的句子。(即標題案例整個文件)。

      在格式化文檔時,標題大小寫也是一件重要的事情。它可以通過替換輕松完成。

      :%s/\.\s*\w/\=toupper(submatch(0))/g

      \.\s*\w – 搜索模式 – 文字。( 點 ) 后跟零個或多個空格,以及一個單詞字符。

      toupper – 將給定的文本轉換為大寫。

      submatch(0) – 返回匹配的模式。

      Lot of vi/vim tips and tricks are available at hgst.com.cn. reading these articles will make you very productive. following activities can be done very easily using vim editor. a. source code walk through, b. record and play command executions, c. making the vim editor as ide for several languages, d. and several other @ vi/vim tips & tricks.

      Lot of vi/vim tips and tricks are available at hgst.com.cn. Reading these articles will make you very productive. Following activities can be done very easily using vim editor. a. Source code walk through, b. Record and play command executions, c. Making the vim editor as ide for several languages, d. And several other @ vi/vim tips & tricks.

      Perl

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:定制管理系統
      下一篇:話說CWE 4.3的新視圖 - 數據保護檢查
      相關文章
      久久精品国产亚洲AV未满十八| 亚洲av无码偷拍在线观看| 精品亚洲成A人无码成A在线观看| 国产亚洲美女精品久久久2020| 亚洲av无一区二区三区| 亚洲综合激情视频| 亚洲精品免费在线| 久久久久亚洲AV成人片| 亚洲国产精品一区二区久久| 亚洲国产成人久久精品影视| 亚洲成在人天堂在线| 内射少妇36P亚洲区| 亚洲精品动漫在线| 亚洲国产成人九九综合| 亚洲人成网站日本片| 国产精品久久亚洲不卡动漫| 99久久国产亚洲综合精品| 亚洲日韩精品无码专区加勒比 | 亚洲私人无码综合久久网| 亚洲中文字幕久久精品无码A| 亚洲午夜精品一区二区麻豆| 亚洲精品无码永久在线观看男男 | 久久精品国产亚洲av影院| 中文字幕在线观看亚洲| 亚洲国产美女精品久久| 亚洲AV无码无限在线观看不卡| 亚洲午夜精品久久久久久app| 亚洲AV日韩AV一区二区三曲| 一级毛片直播亚洲| 国产成人毛片亚洲精品| 亚洲国产精品一区二区第一页 | 亚洲资源在线视频| 亚洲乱码一二三四区乱码| 亚洲欧洲专线一区| 国产亚洲高清在线精品不卡| 中文字幕第13亚洲另类| 香蕉视频在线观看亚洲| 91亚洲国产成人久久精品网址| 亚洲欧美日韩综合久久久| 日韩在线视精品在亚洲| 亚洲综合在线另类色区奇米 |