인스턴스간에 내 Visual Studio Code 설정을 동기화하는 방법이 있습니까?


123

VS Code 사용자 설정 (파일> 기본 설정> 사용자 설정)을 어떻게 든 클라우드에 동기화하여 Windows 10 및 Visual Studio에서와 같이 여러 설치간에 쉽게 공유 할 수 있기를 바랍니다.

이 작업을 지원하는 방법이 있습니까? 코드에서 직접 지원하는 것도 좋지만, 그렇지 않으면 settings.json 위치를 Dropbox 또는 OneDrive 폴더로 옮길 수도 있습니다.

저는이 작업을 자동으로 조용히 수행하는 방법을 구체적으로 찾고 있습니다. 수동 내보내기 / 가져 오기는 너무 번거롭고 내가 찾고있는 것이 아닙니다.


업데이트 : 여기에 기능 요청이 있습니다 . 이 기능을 원하시면 좋아요를 눌러주세요.


2
매우 간단한 방법은 Google의 백업 및 동기화 프로그램을 사용하고 C : \ Users \ [YOUR_USER] \ AppData \ Roaming \ Code \ User 폴더를 백업에 추가하는 것입니다.
vinsa

답변:


126

여러 인스턴스에서 모든 Visual Studio 코드 설정을 동기화하는 확장을 개발했습니다.

주요 특징들

  1. GitHub 계정 토큰을 사용하십시오.
  2. 한 번의 클릭으로 업로드 및 다운로드가 쉽습니다.
  3. 모든 설정 및 스 니펫 파일을 저장합니다.
  4. 업로드 키 : Shift + Alt + u
  5. 다운로드 키 : Shift + Alt + d
  6. 모든 동기화 옵션을 보려면 동기화를 입력하십시오.

그것은 동기화

  • 설정 파일
  • 키 바인딩 파일
  • 파일 시작
  • 스 니펫 폴더
  • VSCode 확장

상세 문서 소스

VSCode-설정 동기화 블로그 게시물

여기에서 다운로드 : VS 코드-설정 동기화-확장


1
감사합니다 Shan Khan-이 확장은 매우 유용합니다. 인스턴스간에 VS Code 설정 및 키 바인딩을 동기화해야하는 가상 서버 세트가 있으며이 확장은 광고 된대로 정확하게 작동합니다.
Bill_Stewart

시도했지만 성공하지 못했습니다. Alt-Shift U로 활성화하면 다음 오류가 발생합니다. extensionHost.ts : 293 [Extension Host] { "message": "Not Found", "documentation_url": " developer.github.com/v3 "} A. logExtensionHostMessage @ extensionHost.ts : 293 messageService.ts : 126Error Logged In Console (도움말 메뉴> 개발자 도구 토글). 사전 설정 명령에서 'Sync : Open Issue'를 사용하여 이슈를 열 수 있습니다 .e.doShow @ messageService.ts : 126
Robin Coe

4
이 대답을 받아들이고 싶지만 도구를 사용해 보았지만 신뢰할 수없고 버그가있는 것으로 나타났습니다. 매우 간단한 시나리오 : VS Code가 두 대의 컴퓨터에 설치되어 있고 자동 업로드 / 다운로드 설정 및 확장 변경 사항을 모두 얻으려고했습니다. 나는 그것을 작동시키지 못하고 결국 포기했다. 그래서 좋은 생각이지만 더 많은 작업이 필요합니다.
마크 휘태커

2
내 설정을 (반) 공개 요지에 게시하는 느낌이 엇갈립니다. 일부 확장 프로그램은 해당 설정에 민감한 데이터 (예 : 데이터베이스 로그인, SFTP 로그인)를 저장합니다. Syncthing 또는 Resilio Sync와 같은 외부 도구에 의해 동기화 된 대신 스토리지를 "로컬"파일로 리디렉션하는 것이 어렵습니까?
korkman

1
@korkman은 이러한 상황을 처리하기 위해 설정 동기화를 통해 향후 업데이트에서 gist와 같은 로컬 파일 및 git 저장소를 통해 동기화 할 수 있습니다.
Shan Khan

21

사용자 설정이 포함 된 디렉터리에서 Dropbox 또는 OneDrive와 같은 응용 프로그램의 동기화 디렉터리로 하드 링크를 만들 수 있습니다.

예를 들어 Windows에서 사용자 설정은에 %APPDATA%\Code\User있으므로 다음을 입력 할 수 있습니다.

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

Visual Studio Code를 사용하여 컴퓨터에서 동기화를 수행합니다.

그런 다음 다른 컴퓨터에서 %APPDATA%\Code\User폴더를 삭제 하고 다음을 입력 할 수 있습니다 .

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

동기화 된 설정을 검색합니다.


안녕하세요 ! 동기화 디렉터리에서 % appdata % 폴더로 링크를 만들어야하는 이유를 이해할 수 없습니다. 동기화 디렉토리의 모든 실제 VS 설정 한 번씩 이동 (보관 용, 원 드라이브, 어떤 ...), 그 다음 모든 컴퓨터에 당신은 설정을 동기화 삭제할 %APPDATA%\Code\User및 사용하여 링크를 생성mklink /H /J %APPDATA%\Code\User X:\Your\Sync\Dir
의 Michaël Polla을

2
주어진 이름이 이미 존재하면 링크를 만들지 못하지만 설정이 다운로드되면 동기화 디렉토리가 거기에 있기 때문입니다.
씨 REE

이것은 메시지와 함께 네트워크 드라이브에서 실패합니다"Local NTFS volumes are required to complete the operation."
Amit Beckenstein

11

아하, 내 VSCode 확장을 시도해 볼 수 있습니다 : Syncing .

당신이 그것을 좋아하기를 바랍니다. :)


퀵 가이드

  1. 설치 동기화 :

  2. 자신의 것을 얻으십시오 GitHub Personal Access Token :

    1. GitHub Settings 페이지에 로그인 하십시오.

      설정 페이지에 로그인

    2. Personal access tokens탭을 선택 하고을 클릭 Generate new token합니다.

      새 토큰 생성

    3. 을 선택 gist하고 클릭 Generate token합니다.

      요점을 허용하다

    4. 토큰을 복사하고 백업하십시오.

      토큰 복사 및 백업

  3. 설정 동기화 :

    Syncing필요한 정보를 요청 for the first time하고save for later use .

    1. 업로드 :

      1. 유형 upload 에서 VSCode Command Palette.

      2. 당신의 GitHub Personal Access Token .

      3. 당신의 Gist ID (또는 leave it blank자동 생성)을 .

      4. 끝난!

      5. 업로드 후 GitHub GistGist ID 에서 설정 및 해당 항목 을 찾을 수 있습니다 .

        설정 및 요점

    2. 다운로드 :

      1. 입력 download에서VSCode Command Palette.

      2. 귀하의 GitHub Personal Access Token(또는leave it blank 공개 Gist에서 다운로드하려는 경우).

      3. 귀하의 Gist ID(또는 public Gist ID)를 입력하십시오 .

      4. 끝난!


흠. 이것은 참조 VS Code 설치에 설치 한 확장을 동기화하지 않는 것 같습니다. 누락 된 것이 있거나이 기능이이 도구의 범위를 벗어 납니까?
SeaDude

편집 : Syncing: Download Settings확장 프로그램을 다운로드 하려면 2x 를 실행해야했습니다 . 별거 아니야, 그냥 머리 위로. 킬러 도구에 감사드립니다!
SeaDude

1
내 설정을 (반) 공개 요지에 게시하는 느낌이 엇갈립니다. 일부 확장 프로그램은 해당 설정에 민감한 데이터 (예 : 데이터베이스 로그인, SFTP 로그인)를 저장합니다. Syncthing 또는 Resilio Sync와 같은 외부 도구에 의해 동기화 된 대신 스토리지를 "로컬"파일로 리디렉션하는 것이 어렵습니까?
korkman

@korkman 로컬 저장소로 내보내기는 아직 지원되지 않지만 파일 동기화를 지원하는 것이 더 나을 수 있습니다.
Nonoroazoro

9

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를 부트 스트랩 할 수도 있습니다. 다음 비디오는 이것을 보여줍니다.

동기화하는 동안 설정 및 키 바인딩에서 충돌 감지를 지원합니다. 충돌은 왼쪽에 수신 (클라우드) 변경이 있고 오른쪽에 로컬 변경이있는 diff 편집기를 사용하여 표시됩니다. 오른쪽 편집기에서 편집하여 충돌을 해결하고 편집기에서 제공하는 조치를 사용하여 변경 사항을 병합 할 수 있습니다.

지원되는 기능

현재 설정, 키보드 바로 가기, 확장 및 표시 언어는 동기화되어 있지만 더 추가 할 계획입니다. 제안 된 설정 동기화 기능 목록을 검토 할 수 있습니다 .

시스템 설정 (시스템 또는 시스템 재정의 가능 범위 포함)은 기본적으로 동기화되지 않습니다. 설정 편집기 나 설정을 사용하여이 목록에 원하는 설정을 추가하거나 제거 할 수도 있습니다 sync.ignoredSettings.

키보드 단축키는 기본적으로 플랫폼별로 동기화됩니다. 키보드 단축키가 플랫폼에 구애받지 않는 경우 설정을 비활성화하여 플랫폼간에 동기화 할 수 있습니다 sync.keybindingsPerPlatform.

모든 기본 제공 및 설치된 확장은 전역 활성화 상태와 함께 동기화됩니다. 확장보기에서 또는 설정을 사용하여 확장 동기화를 건너 뛸 수 있습니다 sync.ignoredExtensions.

설정 동기화 활동은 로그 (동기화) 출력보기 에서 모니터링 할 수 있습니다 . 모든 로컬 사용자 정의는 동기화 중에 변경 될 때마다 디스크에서 지난 30 일 (최소 10 일) 동안 백업됩니다. 동기화 : 로컬 백업 폴더 열기 명령을 사용하여 백업 위치로 이동하고 이전 사용자 지정을 유지할 수 있습니다.

(및 릴리스 노트 링크의 몇 가지 gif)

github가 아닌 Microsoft 계정을 통해 작동 합니다 (v1.45까지-상단 참조).

설정 동기화는 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


감사합니다 마크. 나는 이것이 도착하면 이것을 시도하고 싶을 것입니다.
Mark Whitaker

1
백만 달러짜리 질문은 이것이 언제 안정 될 것인가입니다. 1.46이 나왔지만 여전히 내부자 전용입니다 :(
bviktor

6

settings.json자동 백업을 위해 VS Code 를 iCloud 드라이브 에 복사 한 다음 기호 링크를 생성하여 Mac에서이 작업을 수행했습니다.

  1. 복사 settings.json에서 VS 코드 설정 디렉토리 $HOME/Library/Application Support/Code/User/settings.json 백업 위치로
  2. settings.json이름을 변경 하여 이전 백업settings-old.json
  3. 터미널에서 cdVS 코드 설정 디렉토리 :cd ~/Library/Application\ Support/Code/User/
  4. command를 사용하여 백업 파일에 대한 심볼릭 링크를 만듭니다 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

@frankhommers Window의 symlink 명령을 사용하여 복제 할 수있는 것 같습니다 mklink.. 당신은 원 드라이브 보관 용, 또는 대신 아이 클라우드 드라이브의 또 다른 클라우드 서비스 사용할 수 있습니다
크리스 Feist의

4

내 장소 settings.json내가 자식과 동기화 (보관 것 또한 작업하지만) 내 컴퓨터에서 설정 메뉴의 동기화에서를 업데이트 있도록 각 플랫폼에 대한 올바른 위치로 심볼릭 링크하는 파이썬 스크립트를 사용하는 구성 파일에. 심볼릭 링크를 만들려면 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

사용자 설정

현재 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 작업 공간 설정이 자동으로 제공됩니다.


답장 해주셔서 감사 합니다만 질문을 오해하셨습니다. 프로젝트 설정이 아닌 사용자 설정에 대해 묻습니다. 질문에 대한 설명을 추가했습니다.
Mark Whitaker

1
감사합니다, 나는 대답 개선
Wosi

3

이를 수행하는 또 다른 방법은 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 에서 찾을 수 있습니다.


2

마지막으로 기본 제공 기능입니다. Visual Studio Code의 설정 동기화를 참조 하세요 .

참고 : 동기화는 현재 2020 년 5 월 버전 1.46부터 미리보기 로 제공됩니다.


2
또 미리 생각에
프랭크 푸

@FrankFu 글쎄요,하지만 이것은 큰 기능이고 그들은 진전을 보이고 있습니다 : 당신은 microsoft / github 계정에 동기화 할 수 있고, 계정 로그인 등을위한 제안 된 API가 있습니다. (이것은 우리와 같은 다른 확장에 유용 할 것입니다. github btw)
Chayim Friedman

@ChayimFriedman, 오 100 %, 불평 할 의도는 전혀 없었습니다. 나는 원래의 편집되지 않은 답변이 달리 말하지 않았기 때문에 사람들에게 잘못된 희망을주지 않기 위해 정리가 필요하다고 느꼈습니다.
Frank Fu

@FrankFu 오, 좋아. 죄송합니다.
Chayim Friedman

-7

사용자 설정 대신 작업 공간 설정을 사용하십시오.


작업 공간 설정이 프로젝트 또는 시스템간에 동기화되지 않으므로 건설적인 제안이 아닙니다.
Itanex

2
내가 의미가 있었는지 있으리라 믿고있어, @ColacX에게 의심의 이익을주는 것은 당신이 작업 공간-설정을 사용하는 경우, 당신은 자식 / SVN / 등있는 저장할 수 있었다 않는 의미에서 그들을 동기화 사실.
Joshua Sleeper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.