Visual Studio Code 尋找取代功能使用說明
訂閱 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 編輯器的多個行中尋找和取代
VSCode 在多行中尋找取代,以及將文字取代為換行字元影片示範 YouTube
如果需要尋找和取代的內容,分布在多個行中,那麽可以在搜尋面板或尋找小工具中,按下按鍵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 中指定尋找取代要包含和要排除的檔案
VSCode 在尋找取代中包含或排除特定檔案、資料夾影片示範 YouTube
點選搜尋面板中的省略號按鈕,在要包含的檔案或要排除的檔案一項中填寫路徑規則,可以將尋找和取代操作,限定在符合規則的檔案或資料夾,或排除某些檔案或資料夾。
你可以在路徑規則中使用 glob 萬用字元,比如,*表示任意多個字元,?表示一個字元,**表示零個或多個資料夾組合的任意路徑。
多個路徑規則之間,可使用,進行分隔,規則之間為「或」的關系。
在下面的路徑規則中,*.txt表示所有的txt檔案,en/**/*.json表示en目錄(包括所有子目錄)中所有的json檔案。
*.txt, en/**/*.json此外,點選搜尋面板中的齒輪圖示,啟用相關功能後,VSCode 將根據設定項search.exclude和files.exclude,來排除檔案或資料夾參與尋找取代。只需要將支援 glob 萬用字元的路徑規則書寫為設定項的屬性,屬性的值設定為true即可(可能需要重新啟動 VSCode)。
search.exclude 與 files.exclude 的不同
search.exclude和files.exclude的區別在於,files.exclude還將在檔案總管中,隱藏相關檔案和資料夾,除非遇到檔案已經在 VSCode 中開啟等特殊情況。
search.exclude 和 files.exclude 中的 glob 路徑為絕對路徑
需要指出,設定項search.exclude和files.exclude中的 glob 路徑為絕對路徑。因此,書寫*.py只表示根目錄下的py檔案,**/*.py才表示所有目錄中的py檔案。
在下面的設定項中,src/**/*.cs表示src目錄下的所有cs檔案,**/*.py表示所有目錄中的py檔案。
// 排除 src 目錄下的所有 cs 檔案
"search.exclude": {
"src/**/*.cs": true,
},
// 排除所有目錄中的 py 檔案
"files.exclude": {
"**/*.py": true,
},原始碼
講解影片
VSCode 在多行中尋找取代,以及將文字取代為換行字元·YouTube
VSCode 在尋找取代中包含或排除特定檔案、資料夾·YouTube