2026年5月29日

VSCODE 如何只替代所選區域或全部?

 在 VS Code 中,您可以自由選擇將替代範圍限制在特定選取區域或套用到整份檔案(全部)

🎯 情況一:只替代「所選區域」

如果您只想修改程式碼中的某幾個段落,請按照以下步驟:
  1. 圈選範圍:在編輯器中,用滑鼠或鍵盤選取您想要修改的文字區域。
  2. 開啟搜尋面板:按下 Ctrl + H(Mac 為 Cmd + Option + F)。
  3. 啟用「在選取範圍中尋找」
    • 點擊搜尋面板右側的 |= 圖示(外觀像一條水平線左右被括號包住)。
    • 快速鍵: Windows/Linux 按 Alt + L,Mac 按 Cmd + Option + L
  4. 執行替代
    • 點擊 全部替換 (Replace All) 按鈕(快速鍵:Ctrl + Alt + Enter / Mac: Cmd + Alt + Enter)。
    • 此時 VS Code 只會把您剛剛圈選的區域內符合的文字換掉。
💡 實用小秘訣:如果您在開啟搜尋面板之前就已經選取了多行文字,VS Code 通常會自動啟用這個功能。

🌍 情況二:替代「整份檔案(全部)」

如果您想讓規則套用到目前開啟的整份檔案,請確保「在選取範圍中尋找」功能是關閉的:
  1. 關閉區域限制:檢查搜尋面板右側的 |= 圖示,確認它沒有被高亮(按一下可切換開關)。
  2. 一鍵全部替換
    • 直接點擊「替代框」右側的 全部替換 (Replace All) 圖示。
    • 或使用快速鍵:Ctrl + Alt + Enter(Mac 為 Cmd + Alt + Enter)。

🎛️ 按鈕圖示快速辨識指南

在搜尋與替代面板的右側,您會看到一排小按鈕,它們的作用分別是:
  • .*:啟用正規表達式。
  • |=:只在選取區域中尋找。
  • ab (Replace):只替代目前游標所在的那下一個相符文字。
  • ab| (Replace All):替代範圍內所有相符文字(配合上述開關,決定是局部全部還是整份檔案全部)。
想確認一下,您現在要處理的是單一檔案內的多行程式碼,還是想批次修改整個專案(多個檔案)底下的文字呢?
如果您有需要,我可以跟您說明跨檔案(全專案)的批次替代方法!
抱歉!我傳遞了不正確的預設行為資訊。謝謝您的即時糾正。
事實上,VS Code 預設不會因為您選取了多行文字就自動幫您勾選「在選取範圍中尋找(|=)」[1, 2]。不論您有沒有選取文字,開啟搜尋面板時,預設通常還是會針對「整份檔案」進行搜尋與替代 [2]。
如果您希望它能像我剛才描述的那樣,在選取多行文字時自動啟用這個限制範圍的功能,必須手動修改設定(Settings):

🛠️ 調整設定使其「自動啟用」:

  1. 按下 Ctrl + ,(Mac 為 Cmd + ,)開啟設定
  2. 在上方搜尋欄輸入:editor.find.autoFindInSelection [1, 2]。
  3. 將此設定從 never(永不)修改為:
    • multiline:當您選取 2 行(含)以上 的文字時,開啟搜尋面板就會自動啟用區域限制 [1, 2]。
    • always:只要有選取任何文字(哪怕只有幾個字),開啟搜尋面板就會自動啟用區域限制 [2]。

回到您當前的需求,在預設狀態下,最安全的局部替代做法是:
  1. 先把文字圈選起來。
  2. 按下 Ctrl + H
  3. 務必手動點擊 右側的 |= 圖示(或按 Alt + L),看到它亮起來 [1, 2]。
  4. 輸入正則語法後,點擊 全部替換,這樣就只會動到選取範圍。
再次感謝您的指正!您目前在操作這步驟時,有順利鎖定在您想要的區域嗎?如果正則語法有遇到任何抓不準的問題,隨時可以發給我調整。

沒有留言: