從?#65279字符看dede模板頁面編碼問題
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
示例 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/\
注意::您應該用 < 和 > 將單詞括起來,這將強制替換僅搜索完整單詞而不是任何部分匹配。
示例 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小時內刪除侵權內容。