簡體   English   中英

有什么方法可以在實例之間同步我的 Visual Studio Code 設置?

[英]Is there any way to sync my Visual Studio Code settings between instances?

我希望能夠以某種方式將我的 VS Code 用戶設置(文件 > 首選項 > 用戶設置)同步到雲,以便我可以輕松地在多個安裝之間共享它們,就像在 Windows 10 和 Visual Studio 中一樣。

有沒有支持的方法來做到這一點? Code 中的直接支持會很棒,但除此之外,能夠將我的 settings.json 位置移動到 Dropbox 或 OneDrive 文件夾也可以。

我正在專門尋找一種自動且無聲地執行此操作的方法。 手動導出/導入太麻煩,不是我想要的。


更新:這現在是VS Code內置功能

我開發了一個擴展,可以跨多個實例同步所有 Visual Studio Code 設置。

主要特點

  1. 使用您的 GitHub 帳戶令牌。
  2. 一鍵輕松上傳和下載。
  3. 保存所有設置和片段文件。
  4. 上傳鍵:Shift + Alt + u
  5. 下載鍵:Shift + Alt + d
  6. 鍵入同步以查看所有同步選項

它同步

  • 設置文件
  • 鍵綁定文件
  • 啟動文件
  • 片段文件夾
  • VSCode擴展

詳細文檔來源

VSCode - 設置同步博客文章

在此處下載: VS Code - 設置同步 - 擴展

您可以從包含用戶設置的目錄到您的應用程序(例如 Dropbox 或 OneDrive)的同步目錄建立硬鏈接。

例如,在 Windows 上,用戶設置位於%APPDATA%\\Code\\User ,因此您可以鍵入:

mklink /H /JX:\\Your\\Sync\\Dir %APPDATA%\\Code\\User

在您的計算機上使用 Visual Studio Code 實現同步。

然后,在另一台計算機上,您可以刪除%APPDATA%\\Code\\User文件夾,然后鍵入:

mklink /H /J %APPDATA%\\Code\\User X:\\Your\\Sync\\Dir

以檢索同步設置。

啊哈,你可以試試我的 VSCode 擴展: 同步

希望你會喜歡。 :)


快速指南

  1. 安裝同步

  2. 獲取您自己的GitHub Personal Access Token

    1. 登錄到您的GitHub Settings頁面。

      登錄設置頁面

    2. 選擇Personal access tokens選項卡,然后單擊Generate new token

      生成新令牌

    3. 選擇gist並單擊Generate token

      允許要點

    4. 復制並備份您的令牌。

      復制和備份令牌

  3. 同步您的設置:

    Syncingfor the first time詢問必要的信息並save for later use

    1. 上傳

      1. VSCode Command PaletteVSCode Command Palette upload

      2. 輸入您的GitHub Personal Access Token

      3. 輸入您的Gist ID (或leave it blank以自動創建)。

      4. 完畢!

      5. 上傳后,您可以在您的GitHub Gist 中找到您的設置和相應的Gist ID

        設置和要點

    2. 下載

      1. VSCode Command PaletteVSCode Command Palette download

      2. 輸入您的GitHub Personal Access Token (如果您想從公共 Gist 下載,則將leave it blank

      3. 輸入您的Gist ID (或public Gist ID )。

      4. 完畢!

在 v1.48 中:

預覽功能

預覽功能尚未准備好發布,但功能足以使用。 我們歡迎您在開發過程中盡早提供反饋。

設置同步

設置同步現在可以在穩定版本中預覽 🎉。 有關更多信息和常見問題解答,請參閱用戶指南

該功能現在在產品中也稱為設置同步 它的所有參考和設置都被重命名為對齊。

另請參閱https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_48.md#settings-sync 上的“手動合並”和 Insiders 和 Stable 之間的同步


在 v1.45 中,您似乎可以通過 github 登錄到內置設置同步,請參閱https://github.com/microsoft/vscode/issues/95160#event-3266867554 (在設置同步中支持 GitHub 登錄)。 v1.45 發行說明


在 v1.43 中作為預覽功能(因此僅在 Insiders' Build 中)是settings sync 請參閱https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_43.md#settings-sync

設置同步

過去幾個月我們一直在努力支持跨機器同步 VS Code 設置、擴展和鍵盤快捷鍵(流行功能請求#2743 )。 在這個里程碑中,我們很高興地宣布此功能已准備好從我們的下一個1.44.0 內部版本中預覽。 您現在可以在所有機器上的所有 VS Code 安裝中同步您的自定義。 您還可以輕松地在新機器上使用您的個人定制引導 VS Code。 以下視頻演示了這一點:

支持在同步時檢測設置和鍵綁定中的沖突。 使用差異編輯器顯示沖突,左側是傳入(雲)更改,右側是本地更改。 您可以通過在右側編輯器中進行編輯來解決沖突,並使用編輯器中提供的操作合並更改。

支持的功能

目前設置、鍵盤快捷鍵、擴展和顯示語言是同步的,但我們計划添加更多。 您可以查看我們建議的設置同步功能列表。

默認情況下,機器設置(具有機器或機器可覆蓋范圍)不同步。 您還可以從設置編輯器或使用設置sync.ignoredSettings在此列表中添加或刪除您想要的設置。

默認情況下,鍵盤快捷鍵按平台同步。 如果您的鍵盤快捷鍵與平台無關,那么您可以通過禁用設置sync.keybindingsPerPlatform跨平台同步它們。

所有內置和安裝的擴展與其全局啟用狀態同步。 您可以從擴展視圖或使用設置sync.ignoredExtensions跳過同步擴展。

設置 同步活動可以在日志(同步)輸出視圖中進行監控。 同步期間更改時,所有本地自定義項都會在磁盤中備份最近 30 天(至少 10 天)。 您可以使用命令同步:打開本地備份文件夾轉到備份位置並保留舊的自定義設置。

(以及發行說明鏈接中的一些 gif)

請注意,這是通過您的 Microsoft 帳戶,而不是 github(直到 v1.45 - 見頂部):

Settings Sync 使用 Microsoft 帳戶來存儲用於同步的 VS Code 自定義,因此您需要一個帳戶才能使用它。 有關更多信息和幫助,請參閱設置同步文檔

另請參閱https://github.com/microsoft/vscode-docs/blob/vnext/docs/editor/settings-sync.md有關如何設置settings sync


以及關於設置同步的 v1.44 信息的鏈接: https : //github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_44.md#settings-sync

我通過將 VS Code 的settings.json復制到我的 iCloud 驅動器進行自動備份,然后創建一個符號鏈接,在我的 Mac 上做到了這一點。

  1. settings.jsonVS 代碼設置目錄$HOME/Library/Application Support/Code/User/settings.json復制到您的備份位置
  2. 通過重命名為settings-old.json來備份舊的settings.json
  3. 在終端, cd到VS代碼設置目錄: cd ~/Library/Application\\ Support/Code/User/
  4. 使用命令ln -sf path/to/backup/settings.json settings.json創建指向備份文件的符號鏈接。 由於我將我的備份到 iCloud 並將文件重命名為vscode.settings.json ,我的命令如下所示: ln -sf ~/Library/Mobile\\ Documents/com~apple~CloudDocs/vscode.settings.json settings.json
  5. 檢查您是否可以在 VS Code 中打開用戶首選項

要在不同的 Mac 上使用備份,只需重復步驟 2-5。

我也為擴展做了這個......

cd ~/.vscode/
mkdir ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode/
cp -a extensions ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode
mv extensions extensions-old
ln -sf ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode/extensions extensions

另一種方法是軟鏈接您的文件,這些文件也可以存儲在 GitHub 上的存儲庫中。 例如,在 Mac OS 上,假設您有一個名為~/dev/dotfiles/vscode 假設那里有兩個文件,名為settings.jsonkeybindings.json 您可以將這些文件軟鏈接到:

ln -s ~/dev/dotfiles/vscode/keybindings.json ~/Library/Application\ Support/Code/User/keybindings.json
ln -s ~/dev/dotfiles/vscode/settings.json ~/Library/Application\ Support/Code/User/settings.json

如果您使用的是 Windows 或 Linux,則可以在https://code.visualstudio.com/docs/getstarted/settings#_settings-file-locations找到相應設置目錄的路徑

我將我的settings.json放在我與 git 同步的配置文件中(盡管 Dropbox 也可以工作)並使用 Python 腳本將它符號鏈接到每個平台的正確位置,以便從設置菜單更新它在我的機器上同步。 創建符號鏈接需要 Windows 管理員權限。

import os
import platform

# Find the settings file in the same directory as this script
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
VS_SETTINGS_SRC_PATH = os.path.join(SCRIPT_DIR, 'settings.json')

# https://code.visualstudio.com/docs/getstarted/settings#_settings-file-locations
if platform.system() == 'Windows':
    VS_SETTINGS_DST_PATH = os.path.expandvars(r"%APPDATA%\Code\User\settings.json")
elif platform.system() == "Darwin":
    VS_SETTINGS_DST_PATH = os.path.expandvars(r"$HOME/Library/Application Support/Code/User/settings.json")
elif platform.system() == "Linux":
    raise NotImplementedError()
else:
    raise NotImplementedError()

# On Windows, there might be a symlink pointing to a different file
# Always remove symlinks
if os.path.islink(VS_SETTINGS_DST_PATH):
    os.remove(VS_SETTINGS_DST_PATH)

choice = input('symlink %r -> %r ? (y/n) ' % (VS_SETTINGS_SRC_PATH, VS_SETTINGS_DST_PATH))
if choice == 'y':
    os.symlink(VS_SETTINGS_SRC_PATH, VS_SETTINGS_DST_PATH)
    print('Done')
else:
    print('aborted')

用戶設置

目前沒有針對 Visual Studio Code 中可用的用戶設置的自動同步。 在 Windows 上,用戶設置位於%APPDATA%\\Code\\User\\settings.json 您可以在 OneDrive 或 Dropbox 上保存該文件的副本,然后將其在所有計算機上移動到用戶設置文件夾。 但這仍然包括每次更改配置時在每台機器上的手動步驟。

您可以在此處建議自動同步設置: https : //visualstudio.uservoice.com/forums/293070-visual-studio-code

工作區設置

將工作區的.vscode文件夾添加到版本控制系統(Git/SVN 等)。 當您從存儲庫簽出代碼時,您將自動獲得 VS Code 工作區設置。

這最終是一個內置功能:請參閱Visual Studio Code 中的設置同步

使用工作區設置而不是用戶設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM