設定同步
設定同步 (Settings Sync) 讓您可以在不同電腦之間共用 Visual Studio Code 設定 (例如喜好設定、鍵盤快速鍵與已安裝的擴充功能),讓您隨時都能使用自己最習慣的環境來工作。
注意:VS Code 不會將您的擴充功能同步至遠端視窗,或從遠端視窗同步擴充功能,例如當您連線至 SSH、開發容器 (devcontainer) 或 WSL 時。
啟用設定同步
您可以使用活動列底部的管理齒輪選單或帳戶選單中的備份與同步設定...項目來啟用設定同步。

若要使用同步設定,您必須登入並選擇要同步的設定。目前,設定同步支援下列設定:
- 設定
- 鍵盤快速鍵
- 使用者程式碼片段
- 使用者工作
- UI 狀態
- 延伸模組
- 設定檔

當您選取登入按鈕時,您可以選擇使用 Microsoft 或 GitHub 帳戶登入。

做此選擇後,瀏覽器將會開啟,讓您登入 Microsoft 或 GitHub 帳戶。如果您選擇 Microsoft 帳戶,您可以使用個人帳戶 (例如 Outlook 帳戶) 或 Azure 帳戶,也可以將 GitHub 帳戶連結至新或現有的 Microsoft 帳戶。
登入之後,即會啟用設定同步,並繼續在背景中自動同步您的喜好設定。
合併或取代
如果您已經從某部電腦同步,然後又從另一部電腦啟用同步,畫面上將會顯示下列合併或取代對話方塊。

- 合併:選取此選項會將本機設定與來自雲端的遠端設定進行合併。
- 取代本機:選取此選項會以來自雲端的遠端設定覆寫本機設定。
- 手動合併...:選取此選項將會開啟合併檢視,您可以在其中逐一合併喜好設定。

設定同步的資料
電腦設定 (具有 machine或 machine-overridable 範圍) 預設不會進行同步,因為它們的值是特定電腦專屬的。您也可以從設定編輯器或使用設定 settingsSync.ignoredSettings 將您要的設定新增至此清單或從中移除。

鍵盤快速鍵預設會按平台進行同步。如果您的鍵盤快速鍵與平台無關,您可以透過停用設定 settingsSync.keybindingsPerPlatform 來跨平台同步它們。
所有內建和已安裝的擴充功能都會與其全域啟用狀態一起同步。您可以從擴充功能檢視 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 中略過同步某個擴充功能,或使用設定 settingsSync.ignoredExtensions 。

目前會同步下列 UI 狀態:
- 顯示語言
- 活動列項目
- 面板項目
- 檢視區版面配置與顯示狀態
- 最近使用的命令
- 「不再顯示」通知
您隨時可以透過 Settings Sync: Configure 命令,或藉由開啟管理齒輪選單、選取設定同步已啟用,然後選取 Settings Sync: Configure 來變更要同步的內容。
衝突
在多部電腦之間同步設定時,偶爾可能會發生衝突。衝突可能發生在首次設定電腦之間的同步時,或當某部電腦離線時設定發生變更。發生衝突時,系統會提供下列選項:
- 接受本機:選取此選項將會以您的本機設定覆寫雲端中的遠端設定。
- 接受遠端:選取此選項將會以來自雲端的遠端設定覆寫本機設定。
- 顯示衝突:選取此選項將會顯示類似原始檔控制差異編輯器的差異編輯器,您可以在其中預覽本機和遠端設定,並選擇接受本機或遠端設定,或是手動解決本機設定檔中的變更,然後接受本機檔案。
切換帳戶
如果您隨時想要將資料同步至不同的帳戶,可以關閉設定同步,然後再使用不同的帳戶重新啟用。用來關閉同步的命令為 Settings Sync: Turn off。
同步穩定版 (Stable) 與預覽版 (Insiders)
根據預設,VS Code 穩定版 (Stable) 與預覽版 (Insiders) 組建會使用不同的設定同步服務,因此不會共用設定。您可以在啟用設定同步時選取穩定版同步服務,將您的預覽版與穩定版同步。此選項僅適用於 VS Code Insiders。

注意:由於預覽版組建比穩定版更新,同步它們有時可能會導致資料不相容。在這種情況下,設定同步將會在穩定版上自動停用,以防止資料不一致。一旦發布了較新版本的穩定版組建,您就可以升級您的穩定版用戶端並啟用同步,以繼續進行同步。
還原資料
VS Code 在同步時一律會儲存您喜好設定的本機與遠端備份,並提供用於存取這些備份的檢視。萬一發生問題,您可以從這些檢視還原您的資料。

您可以使用命令選擇區中的 Settings Sync: Show Synced Data 命令來開啟這些檢視。本機同步活動檢視預設為隱藏,您可以使用設定同步檢視溢位動作底下的檢視子選單來啟用它。

磁碟中的本機備份資料夾可以透過 Settings Sync: Open Local Backups Folder 命令來存取。該資料夾是依喜好設定類型來組織的,並包含您的 JSON 檔案版本,檔案名稱包含備份發生時的時間戳記。
注意:本機備份會在 30 天後自動刪除。至於遠端備份,每個個別資源 (設定、擴充功能等) 會保留最新的 20 個版本。
已同步的電腦
VS Code 會追蹤同步您喜好設定的電腦,並提供檢視來存取它們。每部電腦都會根據 VS Code 類型 (Insiders 或 Stable) 及其所在的平台獲派預設名稱。您隨時可以使用該檢視中電腦項目上提供的編輯動作來更新電腦名稱。您也可以使用該檢視中電腦項目上的關閉設定同步內容功能表動作,來停用其他電腦上的同步。

您可以使用命令選擇區中的 Settings Sync: Show Synced Data 命令來開啟此檢視。
擴充功能作者
如果您是擴充功能作者,當使用者啟用設定同步時,您應確保您的擴充功能能夠適當運作。例如,您可能不希望您的擴充功能在多部電腦上顯示相同的已關閉通知或歡迎頁面。
在不同電腦之間同步使用者全域狀態
如果您的擴充功能需要在不同電腦之間保留某些使用者狀態,請使用 vscode.ExtensionContext.globalState.setKeysForSync 將狀態提供給設定同步。在不同電腦之間共用狀態 (例如 UI 已關閉或已檢視旗標) 可以提供更好的使用者體驗。
擴充功能功能主題中包含了使用 setKeysforSync 的範例。
回報問題
您可以在記錄 (設定同步) 輸出檢視中監視設定同步活動。如果您遇到設定同步的問題,請在建立問題時附上此記錄。如果您的問題與驗證有關,也請一併附上來自帳戶輸出檢視的記錄。
如何刪除我的資料?
如果您想要從我們的伺服器移除所有資料,只要透過管理齒輪選單下的設定同步已啟用選單關閉同步,然後選取核取方塊以清除所有雲端資料即可。如果您選擇重新啟用同步,將會像是第一次登入一樣。
後續步驟
- 使用者與工作區設定 - 了解如何透過使用者與工作區設定將 VS Code 設定為您的偏好喜好。
常見問題
VS Code 設定同步與 Settings Sync 擴充功能相同嗎?
不是,由 Shan Khan 開發的 Settings Sync 擴充功能是使用 GitHub 上的私密 Gist 來跨不同電腦共用您的 VS Code 設定,這與 VS Code 設定同步無關。
我可以使用哪幾種類型的帳戶來登入設定同步?
VS Code 設定同步支援使用 Microsoft 帳戶 (例如 Outlook 或 Azure 帳戶) 或 GitHub 帳戶登入。不支援使用 GitHub Enterprise 帳戶登入。未來可能會支援其他驗證提供者,您可以在 #88309 期中檢視建議的驗證提供者 API。
注意:VS Code 設定同步目前不支援使用您的 Microsoft 主權雲端帳戶。如果您希望支援此功能,請在此 GitHub 問題中讓我們知道您想要使用哪種 Microsoft 主權雲端。
我可以為設定同步使用不同的後端或服務嗎?
設定同步使用專用服務來儲存設定並協調更新。未來可能會公開服務提供者 API,以允許自訂的設定同步後端。
疑難排解金鑰圈問題
注意:本節適用於 VS Code 1.80 及更高版本。在 1.80 版本中,由於 keytar 已封存,我們改為採用 Electron 的 safeStorage API。
注意:在本文件中,keychain (金鑰圈)、keyring (金鑰環)、wallet (錢包)、credential store (憑證存放區) 視為同義詞。
設定同步會使用作業系統金鑰圈進行加密,並將驗證資訊持續儲存在桌面版上。如果金鑰圈設定錯誤或環境無法辨識,在某些情況下使用金鑰圈可能會失敗。
為了協助診斷問題,您可以使用下列旗標重新啟動 VS Code,以產生詳細記錄:
code --verbose --vmodule="*/components/os_crypt/*=1"
Windows & macOS
目前在 Windows 或 macOS 上沒有已知的設定問題,但如果您懷疑有問題,可以使用上述的詳細記錄在 VS Code 上開啟一個問題。這對於我們支援其他桌面設定非常重要。
Linux
在前一個命令的記錄頂端附近,您會看到類似以下內容的訊息:
[9699:0626/093542.027629:VERBOSE1:key_storage_util_linux.cc(54)] Password storage detected desktop environment: GNOME
[9699:0626/093542.027660:VERBOSE1:key_storage_linux.cc(122)] Selected backend for OSCrypt: GNOME_LIBSECRET
我們依賴 Chromium 的 oscrypt 模組來在金鑰環中尋找並儲存加密金鑰資訊。Chromium 支援許多不同的桌面環境。以下概述了一些熱門的桌面環境以及在金鑰環設定錯誤時可能有助於解決問題的疑難排解步驟。
GNOME 或 UNITY (或類似環境)
如果您看到的錯誤是 "Cannot create an item in a locked collection",很可能是您的金鑰環中的 Login 金鑰環已被鎖定。您應該啟動作業系統的金鑰環 (Seahorse 是常用於檢視金鑰環的圖形介面工具),並確保預設金鑰環 (通常稱為 Login 金鑰環) 已解鎖。當您登入系統時,此金鑰環必須處於解鎖狀態。
KDE
Visual Studio Code 尚未完整支援 KDE 6。因應措施:最新的 kwallet6 也可以透過 kwallet5 存取,因此您可以透過將密碼存放區設定為
kwallet5來強制其使用 kwallet5,如下方 設定要與 VS Code 一起使用的金鑰環 中所述。
您的錢包 (也就是金鑰環) 可能是關閉的。如果您開啟 KWalletManager,您可以查看預設的 kdewallet 是否已關閉,如果是的話,請務必將其開啟。
如果您使用的是 KDE5 或更高版本,且在連線至 kwallet5 時遇到問題 (#189672 期中非官方 VS Code Flatpak 的使用者也有遇到),您可以嘗試將金鑰環設定為 gnome-libsecret,因為這會使用 Secret Service API 與任何有效的金鑰環進行通訊。kwallet5 實作了 Secret Service API,並且可以使用此方法來存取。
如果您仍然無法連線至 kwallet5,有些使用者回報指出,授予特定的 D-Bus 服務權限是一個可行的修正方法:
flatpak override --user --talk-name=org.kde.kwalletd5 --talk-name=org.freedesktop.secrets com.visualstudio.code
其他 Linux 桌面環境
首先,如果您的桌面環境未被偵測到,您可以使用上述的詳細記錄在 VS Code 上開啟一個問題。這對於我們支援其他桌面設定非常重要。
(建議) 設定要與 VS Code 一起使用的金鑰環
您可以透過傳遞 password-store 旗標,手動告知 VS Code 要使用哪個金鑰環。我們建議的設定是:如果您尚未安裝 gnome-keyring,請先安裝它,然後使用 code --password-store="gnome-libsecret" 來啟動 VS Code。
如果此解決方案對您有效,您可以開啟命令選擇區 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並執行 Preferences: Configure Runtime Arguments 命令來永久儲存 password-store 的值。這會開啟 argv.json 檔案,您可以在其中新增設定 "password-store":"gnome-libsecret"。
如果您想嘗試使用 gnome-keyring 以外的金鑰環,以下是 password-store 的所有可能值:
kwallet5:用於搭配 kwalletmanager5 使用。gnome-libsecret:用於搭配任何實作 Secret Service API 的套件使用 (例如gnome-keyring、kwallet5、KeepassXC)。- (不建議)
kwallet:用於搭配較舊版本的kwallet使用。 - (不建議)
basic:請參閱下方關於基本文字的章節以取得更多詳細資料。
如果您的密碼存放區未被自動偵測到,請查看 #187338 期中是否提及您的設定。如果沒有,歡迎將您的設定發表在該處;或者如果您認為您的問題與自動密碼存放區偵測無關,請附上詳細記錄並在 VS Code 上開啟一個問題。
(不建議) 設定基本文字加密
我們依賴 Chromium 的 oscrypt 模組來在金鑰環中尋找並儲存加密金鑰資訊。Chromium 提供了一種選擇性加入的後備加密策略,該策略使用基於 Chromium 原始程式碼中硬式編碼字串的記憶體內金鑰。因此,這個後備策略充其量只是一種混淆手法,只有在您接受「理論上系統上的任何行程都可以解密您所儲存的機密」此一風險的情況下,才應使用它。
如果您接受此風險,您可以開啟命令選擇區 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並執行 Preferences: Configure Runtime Arguments 命令,將 password-store 設定為 basic。這會開啟 argv.json 檔案,您可以在其中新增設定 "password-store":"basic"。
我可以在 VS Code 穩定版與預覽版之間共用設定嗎?
可以。請參閱同步穩定版與預覽版章節以取得更多資訊。
請注意,這有時可能會導致資料不相容,因為預覽版組建比穩定版更新。在這種情況下,設定同步將會在穩定版上自動停用,以防止資料不一致。一旦發布了較新版本的穩定版組建,您就可以升級您的用戶端並啟用設定同步以繼續進行同步。