URLhttps://learnscript.net/zh-hant/vscode/editors/find/
    複製連結移至說明  範例

    Visual Studio Code 尋找取代功能使用說明

    閱讀 7:48·字數 2345·發佈 
    Youtube 頻道
    訂閱 480

    前言

    本文將說明 Visual Studio Code(簡稱 VSCode)中的尋找取代功能,該功能對於開發人員來說是最為常用的。

    Visual Studio Code 編輯器中的尋找和取代操作

    使用鍵盤快速鍵Ctrl+F,或選擇功能表項編輯 | 尋找,或在命令選擇區中執行命令Find,可以在編輯器中開啟尋找小工具。如果編輯器中存在已經選取的文字,那麽這些文字將作為被尋找的內容,否則會嘗試將遊標所在位置的單字作為被尋找的內容,如果單字不存在,那麽會保留上一次的尋找內容。

    使用鍵盤快速鍵Ctrl+H,或選擇功能表項編輯 | 取代,或在命令選擇區中執行命令Replace,可以在編輯器中開啟尋找小工具並進入取代模式。如果編輯器中存在已經選取的文字,那麽這些文字將作為被尋找的內容,否則會保留上一次的尋找內容。

    除了通過尋找小工具進行尋找和取代的相關操作,編輯器還提供了一些鍵盤快速鍵(一般需要編輯器處於活動狀態)和命令選擇區命令來實作相同的效果。

    鍵盤快速鍵Alt+R可用於設定是否采用正規表達式進行尋找。鍵盤快速鍵Alt+W可用於設定是否采用全字拼字。鍵盤快速鍵Alt+C可用於設定是否區分大小寫。鍵盤快速鍵Alt+P可用於設定是否在取代過程中保留大小寫。

    鍵盤快速鍵Enter(需要尋找小工具尋找文字方塊處於活動狀態)和命令Find Next可用於尋找下一個符合條件的文字。鍵盤快速鍵Shift+Enter(需要尋找小工具尋找文字方塊處於活動狀態)和命令Find Previous可用於尋找上一個符合條件的文字。

    鍵盤快速鍵Enter(需要尋找小工具取代文字方塊處於活動狀態)可用於取代下一個符合條件的文字。鍵盤快速鍵Ctrl+Alt+Enter可用於取代所有符合條件的文字。

    鍵盤快速鍵Escape可用於隱藏尋找小工具

    在 Visual Studio Code 編輯器的多個行中尋找和取代

    如果需要尋找和取代的內容,分布在多個行中,那麽可以在搜尋面板尋找小工具中,按下按鍵Ctrl+Enter輸入換行字元,來進行多行尋找或取代。

    輸入以下內容,可以尋找一行以,結尾,下一行以reading開頭的兩行。

    輸入的內容
    ,
    reading

    對於更複雜的比對問題,可啟用正規表達式來解決。而要在正規表達式中進行多行操作,可直接通過按鍵Ctrl+Enter輸入換行字元,或者使用\n來表示換行。

    輸入以下正規表達式,可以尋找分別包含單字reading的兩行。

    輸入的正規表達式
    reading.*\n.*reading

    如果取代內容中有換行,那麽同樣只需簡單的按下Ctrl+Enter輸入換行字元即可。

    在 Visual Studio Code 編輯器的選取文字中進行尋找和取代

    VSCode 提供了針對選取文字的尋找取代功能,首先選取需要操作的文字區域(設定尋找取代範圍),可以使用鍵盤快速鍵Alt+L或點選尋找小工具上的漢堡圖示。設定範圍後,簡單的選取操作不會改變已設定的尋找取代範圍,如需取消選區範圍,可再次按下Alt+L,或點選尋找小工具上的漢堡圖示,或關閉尋找小工具

    在 Visual Studio Code 中進行全域尋找和取代

    全域(跨檔案)尋找取代,可針對整個工作區中的檔案進行操作,這需要點選搜尋面板,或使用鍵盤快速鍵Ctrl+Shift+F(註意某些情況下可能無效)。全域搜尋結果會顯示相符的檔案和具體內容,點選相符項目可快速定位到檔案中的對應位置,或開啟取代預覽。

    如需取代,則可填寫取代內容,點選全部取代按鈕,或暫留選取單個相符項目,點選其右側的取代按鈕,或暫留選取檔案,點選右側全部取代按鈕完成該檔案內所有相符項目的取代。

    通過搜尋面板的省略號按鈕,可啟用「只在開啟的編輯器中搜尋」功能,限製搜尋範圍為目前已開啟的檔案。

    在 Visual Studio Code 中指定尋找取代要包含和要排除的檔案

    點選搜尋面板中的省略號按鈕,在要包含的檔案要排除的檔案一項中填寫路徑規則,可以將尋找和取代操作,限定在符合規則的檔案或資料夾,或排除某些檔案或資料夾。

    你可以在路徑規則中使用 glob 萬用字元,比如,*表示任意多個字元,?表示一個字元,**表示零個或多個資料夾組合的任意路徑。

    多個路徑規則之間,可使用,進行分隔,規則之間為「或」的關系。

    在下面的路徑規則中,*.txt表示所有的txt檔案,en/**/*.json表示en目錄(包括所有子目錄)中所有的json檔案。

    使用 glob 萬用字元的路徑規則
    *.txt, en/**/*.json

    此外,點選搜尋面板中的齒輪圖示,啟用相關功能後,VSCode 將根據設定項search.excludefiles.exclude,來排除檔案或資料夾參與尋找取代。只需要將支援 glob 萬用字元的路徑規則書寫為設定項的屬性,屬性的值設定為true即可(可能需要重新啟動 VSCode)。

    search.exclude 與 files.exclude 的不同

    search.excludefiles.exclude的區別在於,files.exclude還將在檔案總管中,隱藏相關檔案和資料夾,除非遇到檔案已經在 VSCode 中開啟等特殊情況。

    search.exclude 和 files.exclude 中的 glob 路徑為絕對路徑

    需要指出,設定項search.excludefiles.exclude中的 glob 路徑為絕對路徑。因此,書寫*.py只表示根目錄下的py檔案,**/*.py才表示所有目錄中的py檔案。

    在下面的設定項中,src/**/*.cs表示src目錄下的所有cs檔案,**/*.py表示所有目錄中的py檔案。

    settings.json
    // 排除 src 目錄下的所有 cs 檔案
    "search.exclude": {
    	"src/**/*.cs": true,
    },
    // 排除所有目錄中的 py 檔案
    "files.exclude": {
    	"**/*.py": true,
    },

    原始碼

    src/zh-hant/editors·codebeatme/vscode·GitHub

    講解影片

    VSCode 在多行中尋找取代,以及將文字取代為換行字元·YouTube
    VSCode 在尋找取代中包含或排除特定檔案、資料夾·YouTube