Có cách nào để đồng bộ cài đặt Visual Studio Code của tôi giữa các phiên bản không?


123

Tôi muốn có thể đồng bộ hóa cài đặt người dùng VS Code của mình (Tệp> Tùy chọn> Cài đặt Người dùng) với đám mây bằng cách nào đó để tôi có thể dễ dàng chia sẻ chúng giữa nhiều bản cài đặt, như trong Windows 10 và Visual Studio.

Có cách nào được hỗ trợ để làm điều này không? Hỗ trợ trực tiếp trong Code sẽ rất tốt, nhưng nếu không, có thể di chuyển vị trí settings.json của tôi vào thư mục Dropbox hoặc OneDrive cũng sẽ hoạt động.

Tôi đang tìm kiếm một cách cụ thể để thực hiện việc này một cách tự động và âm thầm. Xuất / nhập thủ công quá cồng kềnh và không phải là những gì tôi đang tìm kiếm.


Cập nhật: có một yêu cầu tính năng cho điều này ở đây . Nếu bạn muốn tính năng này, hãy đồng ý với nó.


2
Một cách rất đơn giản sẽ là nếu bạn sử dụng chương trình Sao lưu và đồng bộ hóa của Google và chỉ cần thêm vào để sao lưu thư mục C: \ Users \ [YOUR_USER] \ AppData \ Roaming \ Code \ User.
vinsa

Câu trả lời:


126

Tôi đã phát triển một tiện ích mở rộng sẽ đồng bộ hóa tất cả Cài đặt mã Visual Studio của bạn trên nhiều phiên bản.

Các tính năng chính

  1. Sử dụng mã thông báo tài khoản GitHub của bạn.
  2. Dễ dàng tải lên và tải xuống bằng một cú nhấp chuột.
  3. Lưu tất cả các tệp cài đặt và đoạn mã.
  4. Phím Tải lên: Shift + Alt + u
  5. Phím tải xuống: Shift + Alt + d
  6. Nhập Sync In Order để xem tất cả các tùy chọn đồng bộ

Nó đồng bộ hóa

  • Tệp cài đặt
  • Tệp Keybinding
  • Khởi chạy tệp
  • Thư mục Đoạn mã
  • Phần mở rộng VSCode

Nguồn tài liệu chi tiết

VSCode - Cài đặt Đồng bộ hóa bài đăng trên blog

Tải về tại đây: VS Code - Settings Sync - Extention


1
Cảm ơn Shan Khan - tiện ích mở rộng này khá hữu ích - Tôi có một tập hợp các máy chủ ảo nơi tôi cần đồng bộ hóa cài đặt Mã VS và các ràng buộc chính giữa các phiên bản và tiện ích mở rộng này hoạt động chính xác như quảng cáo.
Bill_Stewart

Đã thử nó nhưng không thành công. Khi tôi kích hoạt nó bằng Alt-Shift U, tôi gặp lỗi: extensionHost.ts: 293 [Extension Host] {"message": "Not Found", "Documents_url": " developer.github.com/v3 "} A. logExtensionHostMessage @ extensionHost.ts: 293 messageService.ts: 126Error Logged In Console (menu Trợ giúp> Chuyển đổi Công cụ dành cho nhà phát triển). Bạn có thể mở sự cố bằng cách sử dụng 'Sync: Open Issue' từ lệnh cài đặt nâng cao.e.doShow @ messageService.ts: 126
Robin Coe

4
Tôi rất muốn chấp nhận câu trả lời này, nhưng tôi đã thử công cụ và thấy nó không đáng tin cậy và có lỗi. Tình huống rất đơn giản: VS Code được cài đặt trên hai máy và tôi đang cố gắng đưa cả hai vào cài đặt tự động tải lên / tải xuống và thay đổi tiện ích mở rộng. Cuối cùng tôi đã từ bỏ sau khi không làm được. Vì vậy, ý tưởng tuyệt vời nhưng cần nhiều công việc hơn.
Mark Whitaker:

2
Tôi có nhiều cảm xúc lẫn lộn khi đăng cài đặt của mình lên một Gist (bán công khai). Một số tiện ích mở rộng lưu trữ dữ liệu nhạy cảm (chẳng hạn như thông tin đăng nhập cơ sở dữ liệu, thông tin đăng nhập SFTP) trong cài đặt của chúng. Có khó để chuyển hướng bộ nhớ sang tệp "cục bộ", được đồng bộ hóa bởi một công cụ bên ngoài như Syncthing hoặc Resilio Sync không?
korkman

1
@korkman để xử lý những tình huống này, Settings Sync sẽ cho phép đồng bộ hóa qua các tệp cục bộ và kho lưu trữ git như ý chính trong các bản cập nhật trong tương lai.
Shan Khan

21

Bạn có thể tạo một liên kết cứng từ thư mục chứa cài đặt người dùng tới thư mục đồng bộ hóa các ứng dụng như Dropbox hoặc OneDrive.

Ví dụ: trên windows, cài đặt người dùng được đặt trong đó %APPDATA%\Code\User, vì vậy bạn có thể nhập:

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

trên máy tính của bạn với Visual Studio Code để đạt được đồng bộ hóa.

Sau đó, trên một máy tính khác, bạn có thể xóa %APPDATA%\Code\Userthư mục và nhập:

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

để truy xuất cài đặt đã đồng bộ hóa.


Chào ! Tôi không hiểu tại sao bạn cần tạo liên kết TỪ thư mục đồng bộ ĐẾN thư mục% appdata%. Di chuyển một lần cho tất cả các thiết lập VS thực tế của bạn trong thư mục đồng bộ (DropBox, onedrive, bất cứ điều gì ...), sau đó trên tất cả các máy tính mà bạn muốn đồng bộ hóa các thiết lập, xóa %APPDATA%\Code\Uservà tạo liên kết bằng cách sử dụngmklink /H /J %APPDATA%\Code\User X:\Your\Sync\Dir
Michaël Polla

2
Bởi vì bạn sẽ không thể tạo liên kết nếu tên đã cho đã tồn tại, trong khi thư mục đồng bộ sẽ ở đó khi cài đặt đã được tải xuống.
Ông Ree

Điều này không thành công đối với các ổ đĩa mạng có thông báo"Local NTFS volumes are required to complete the operation."
Amit Beckenstein

11

Aha, bạn có thể thử tiện ích mở rộng VSCode của tôi: Đồng bộ hóa .

Hy vọng bạn sẽ thích nó. :)


Hướng dẫn nhanh

  1. Cài đặt đồng bộ hóa :

  2. Nhận của riêng bạn GitHub Personal Access Token:

    1. Đăng nhập vào trang GitHub của bạn Settings.

      đăng nhập vào trang cài đặt

    2. Chọn Personal access tokenstab và nhấp vào Generate new token.

      tạo mã thông báo mới

    3. Chọn gistvà nhấp vào Generate token.

      cho phép ý chính

    4. Sao chép và sao lưu mã thông báo của bạn.

      sao chép và sao lưu mã thông báo

  3. Đồng bộ hóa cài đặt của bạn:

    Syncingsẽ yêu cầu thông tin cần thiết for the first timesave for later use.

    1. Tải lên :

      1. Nhập uploadvào VSCode Command Palette.

      2. Nhập của bạn GitHub Personal Access Token.

      3. Nhập của bạn Gist ID(hoặc leave it blankđể tạo tự động).

      4. Làm xong!

      5. Sau khi tải lên, bạn có thể tìm thấy cài đặt của mình và cài đặt tương ứng Gist IDtrong GitHub Gist của bạn .

        cài đặt và ý chính

    2. Tải xuống :

      1. Nhập downloadvào VSCode Command Palette.

      2. Nhập của bạn GitHub Personal Access Token(hoặc leave it blanknếu bạn muốn tải xuống từ Gist công khai)

      3. Nhập Gist ID(hoặc a public Gist ID) của bạn.

      4. Làm xong!


Hừm. Điều này dường như không đồng bộ hóa các tiện ích mở rộng tôi đã cài đặt trong cài đặt VS Code tham chiếu. Tôi có thiếu thứ gì đó không hay chức năng này nằm ngoài phạm vi của công cụ này?
SeaDude

CHỈNH SỬA: Tôi đã phải chạy Syncing: Download Settings2x để tải xuống Phần mở rộng. Không có vấn đề gì, chỉ cần lưu ý. Cảm ơn công cụ giết người!
SeaDude

1
Tôi có nhiều cảm xúc lẫn lộn khi đăng cài đặt của mình lên một Gist (bán công khai). Một số tiện ích mở rộng lưu trữ dữ liệu nhạy cảm (chẳng hạn như thông tin đăng nhập cơ sở dữ liệu, thông tin đăng nhập SFTP) trong cài đặt của chúng. Có khó để chuyển hướng bộ nhớ sang tệp "cục bộ", được đồng bộ hóa bởi một công cụ bên ngoài như Syncthing hoặc Resilio Sync không?
korkman

@korkman Chưa hỗ trợ tính năng xuất sang bộ nhớ cục bộ nhưng có thể tốt hơn nếu hỗ trợ đồng bộ hóa tệp.
Nonoroazoro

9

Trong v1.45, có vẻ như bạn sẽ có thể đăng nhập vào Đồng bộ hóa cài đặt được tích hợp sẵn qua github, xem https://github.com/microsoft/vscode/issues/95160#event-3266867554 (Hỗ trợ đăng nhập GitHub trong đồng bộ hóa cài đặt ). Và Ghi chú phát hành v1.45 .


Trong v1.43 như một tính năng xem trước (vì vậy chỉ trong Bản dựng của Người dùng nội bộ) là đồng bộ hóa cài đặt . Xem https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_43.md#settings-sync

Đồng bộ hóa cài đặt

Chúng tôi đã làm việc trong vài tháng qua để hỗ trợ đồng bộ hóa cài đặt VS Code, tiện ích mở rộng và phím tắt giữa các máy (yêu cầu tính năng phổ biến # 2743 ). Trong sự kiện quan trọng này, chúng tôi vui mừng thông báo rằng tính năng này đã sẵn sàng để xem trước từ bản phát hành nội bộ 1.44.0 tiếp theo của chúng tôi . Giờ đây, bạn có thể đồng bộ hóa các tùy chỉnh của mình trong tất cả các cài đặt VS Code trên tất cả các máy của bạn. Bạn cũng có thể bootstrap VS Code với các tùy chỉnh cá nhân của mình trên một máy mới với nỗ lực tối thiểu. Video sau đây chứng minh điều này:

Hỗ trợ phát hiện xung đột trong cài đặt và liên kết khóa trong khi đồng bộ hóa. Xung đột được hiển thị bằng cách sử dụng trình chỉnh sửa khác biệt với các thay đổi đến (đám mây) ở phía bên trái và các thay đổi cục bộ ở phía bên phải. Bạn có thể giải quyết xung đột bằng cách chỉnh sửa trong trình chỉnh sửa bên phải và hợp nhất các thay đổi bằng cách sử dụng các hành động được cung cấp trong trình chỉnh sửa.

Các tính năng được hỗ trợ

Hiện tại Cài đặt, Phím tắt, Tiện ích mở rộng và Ngôn ngữ hiển thị đã được đồng bộ hóa nhưng chúng tôi đang có kế hoạch bổ sung thêm. Bạn có thể xem lại danh sách các tính năng Đồng bộ hóa cài đặt được đề xuất của chúng tôi .

Cài đặt máy (với máy hoặc phạm vi có thể ghi đè máy) không được đồng bộ hóa theo mặc định. Bạn cũng có thể thêm hoặc xóa cài đặt bạn muốn vào danh sách này từ trình chỉnh sửa cài đặt hoặc sử dụng cài đặt sync.ignoredSettings.

Các phím tắt được đồng bộ hóa trên mỗi nền tảng theo mặc định. Nếu các phím tắt của bạn không phù hợp với nền tảng thì bạn có thể đồng bộ hóa chúng trên các nền tảng bằng cách tắt cài đặt sync.keybindingsPerPlatform.

Tất cả các tiện ích mở rộng tích hợp và cài đặt đều được đồng bộ hóa cùng với trạng thái kích hoạt toàn cầu của chúng. Bạn có thể bỏ qua việc đồng bộ hóa tiện ích mở rộng, từ chế độ xem tiện ích mở rộng hoặc sử dụng cài đặt sync.ignoredExtensions.

Cài đặt Hoạt động đồng bộ hóa có thể được theo dõi trong chế độ xem đầu ra Nhật ký (Đồng bộ) . Tất cả các tùy chỉnh cục bộ được sao lưu trong 30 ngày qua (ít nhất là 10) trong đĩa bất cứ khi nào chúng được thay đổi trong quá trình đồng bộ hóa. Bạn có thể sử dụng lệnh Sync: Open Local Backups Folder để đi đến vị trí sao lưu và giữ lại các tùy chỉnh cũ của bạn.

(và một vài gif tại liên kết ghi chú phát hành)

Lưu ý rằng nó đang hoạt động thông qua tài khoản Microsoft của bạn , không phải github (cho đến v1.45 - xem trên cùng):

Cài đặt Đồng bộ hóa sử dụng tài khoản Microsoft để lưu trữ các tùy chỉnh Mã VS của bạn để đồng bộ hóa và do đó bạn sẽ cần một tài khoản để sử dụng tài khoản này. Tham khảo tài liệu Đồng bộ hóa Cài đặt để biết thêm thông tin và trợ giúp.

Ngoài ra, hãy xem https://github.com/microsoft/vscode-docs/blob/vnext/docs/editor/settings-sync.md để biết thêm về cách thiết lập settings sync.


Và một liên kết đến thông tin v1.44 trên Đồng bộ hóa cài đặt: https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_44.md#settings-sync


Cảm ơn Mark. Tôi sẽ rất muốn thử cái này khi nó đến.
Mark Whitaker

1
Câu hỏi triệu đô là khi nào thì điều này sẽ ổn định. 1.46 đã ra ngoài nhưng vẫn chỉ dành cho người trong cuộc :(
bviktor

6

Tôi đã thực hiện việc này trên máy Mac của mình bằng cách sao chép VS Code settings.jsonvào ổ iCloud của mình để sao lưu tự động, sau đó tạo một liên kết tượng trưng.

  1. Sao chép settings.jsontừ thư mục cài đặt mã VS $HOME/Library/Application Support/Code/User/settings.json vào vị trí sao lưu của bạn
  2. Sao lưu cái cũ settings.jsonbằng cách đổi tên thànhsettings-old.json
  3. Trong thiết bị đầu cuối, cdđể cài đặt mã VS dir:cd ~/Library/Application\ Support/Code/User/
  4. Tạo liên kết biểu tượng cho tệp đã sao lưu của bạn bằng lệnh ln -sf path/to/backup/settings.json settings.json. Vì tôi đã sao lưu mỏ vào iCloud và đổi tên tệp thành vscode.settings.json, lệnh của tôi trông như sau:ln -sf ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode.settings.json settings.json
  5. Kiểm tra xem bạn có thể mở tùy chọn người dùng trong VS Code không

Để sử dụng bản sao lưu trên một máy Mac khác, chỉ cần lặp lại các bước 2-5.

Tôi cũng đã làm điều này cho các tiện ích mở rộng ...

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

@frankhommers Nó trông như thế này có thể được nhân rộng sử dụng lệnh liên kết tượng trưng của cửa sổ: mklink. Bạn có thể sử dụng DropBox, onedrive, hoặc một dịch vụ đám mây iCloud thay vì ổ đĩa
Chris Feist

4

Tôi đặt của tôi settings.jsonvào một tệp cấu hình mà tôi đồng bộ hóa với git (mặc dù Dropbox cũng sẽ hoạt động) và sử dụng tập lệnh Python để liên kết nó với vị trí chính xác cho từng nền tảng để cập nhật nó từ menu cài đặt sẽ đồng bộ hóa trên các máy của tôi. Tạo liên kết tượng trưng yêu cầu đặc quyền của quản trị viên trên 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')

3

Thiết lập người dùng

Hiện tại không có đồng bộ hóa tự động cho cài đặt người dùng có sẵn trong Visual Studio Code. Trên Windows, cài đặt người dùng được đặt trong %APPDATA%\Code\User\settings.json. Bạn có thể lưu bản sao của tệp đó trên OneDrive hoặc Dropbox và di chuyển tệp đó trên tất cả các máy của bạn vào thư mục cài đặt người dùng. Nhưng điều này vẫn bao gồm các bước thủ công trên từng máy mỗi khi bạn thay đổi cấu hình.

Bạn có thể đề xuất đồng bộ hóa tự động các cài đặt tại đây: https://visualstudio.uservoice.com/forums/293070-visual-studio-code

Cài đặt không gian làm việc

Thêm .vscodethư mục không gian làm việc của bạn vào hệ thống kiểm soát phiên bản (Git / SVN, v.v.). Khi bạn kiểm tra mã từ kho lưu trữ, bạn sẽ tự động nhận được cài đặt không gian làm việc Mã VS.


Cảm ơn bạn đã trả lời nhưng bạn đã hiểu sai câu hỏi. Tôi đang hỏi về cài đặt người dùng, không phải cài đặt dự án. Tôi đã thêm một số làm rõ cho câu hỏi.
Mark Whitaker

1
Cảm ơn, tôi đã cải thiện câu trả lời
Wosi 28/10/15

3

Một cách khác để làm điều đó là liên kết mềm các tệp của bạn, tệp này cũng có thể được lưu trữ trong kho lưu trữ trên GitHub. Ví dụ: trên Mac OS, giả sử bạn có một thư mục được gọi là ~/dev/dotfiles/vscode. Giả sử có hai tệp trong đó được gọi là settings.jsonkeybindings.json. Bạn có thể liên kết mềm các tệp này với:

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

Nếu bạn đang sử dụng Windows hoặc Linux, bạn có thể tìm thấy đường dẫn đến các thư mục cài đặt tương ứng tại https://code.visualstudio.com/docs/getstarted/settings#_settings-file-locations


2

Đây cuối cùng là một tính năng được tích hợp sẵn: xem Cài đặt Đồng bộ hóa trong Mã Visual Studio .

Lưu ý : Đồng bộ hóa hiện đang ở bản xem trước kể từ Phiên bản 1.46 tháng 5 năm 2020.


2
Vẫn đang xem trước
Frank Fu

@FrankFu Chà, nhưng đây là một tính năng lớn và chúng đang tiến triển: bạn có thể đồng bộ hóa với tài khoản microsoft / github và có một api được đề xuất để đăng nhập tài khoản, v.v. (sẽ hữu ích cho các tiện ích mở rộng khác như chúng tôi github btw)
Chayim Friedman

@ChayimFriedman, ôi 100%, tôi không hề có ý định phàn nàn. Tôi cảm thấy nó cần phải được làm sáng tỏ để tránh cho mọi người hy vọng sai lầm vì câu trả lời ban đầu chưa được chỉnh sửa không nói khác.
Frank Fu

@FrankFu Ồ, tốt. Lấy làm tiếc.
Chayim Friedman

-7

Sử dụng không gian làm việc-cài đặt thay vì cài đặt người dùng.


Không phải là một đề xuất mang tính xây dựng vì cài đặt không gian làm việc không đồng bộ giữa các dự án hoặc hệ thống.
Itanex

2
Cho @ColacX lợi ích của sự nghi ngờ, tôi giả sử những gì đã có nghĩa là nếu bạn sử dụng không gian làm việc-cài đặt, bạn có thể lưu chúng trong git / svn / etc, mà không thực sự đồng bộ hóa chúng trong một cảm giác.
Joshua Sleeper
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.