Visual Studio Code의 확장 프로그램을 버전 관리하고 싶습니다.

확장 프로그램을 제거하여 아픈 눈을 보았으므로 동일한 작업을 반복하지 않도록 메모합니다.

경위



Visual Studio Code의 확장 기능이 편리하네요. 다만, 새로운 기능을 추가한 후, 그때까지 움직였던 다른 기능이 움직이지 않게 되는 경우가 있습니다.
오랜만에 Markdown Preview Enhanced에서 플로차트를 그렸습니다만, 전혀 표시되지 않았습니다.
어떤 확장 프로그램을 추가하거나 삭제했는지 버전 관리할 수 있다면 원인을 파악하는 데 도움이 되지 않을까요?

주의



Git과 batch는 전혀 익숙하지 않으므로 잘못하면 미안해.

하고 싶은 일


  • 설치된 확장 프로그램 목록을 텍스트 파일 (이하 확장 프로그램 목록이라고 함)으로 출력합니다.
  • 확장 프로그램 목록 버전 관리
  • Visual Studio Code를 확장 프로그램 목록과 같이 다시 구성합니다.

    환경


  • Windows10 1803
  • Visual Studio Code 1.36.0

  • 방법



    확장 기능 목록 출력



    먼저 확장 기능 목록을 출력합니다.

    명령 프롬프트를 열고 확장 프로그램 목록을 저장할 위치로 현재 디렉토리를 변경한 후 다음 명령을 실행합니다. 파일 이름을 마음대로 바꾸십시오.
    code --list-extensions > extension_list.txt
    

    확장 기능 목록 버전 관리



    처음 한 번만 git에 리포지토리 추가
    git init (拡張機能一覧を保存するディレクトリ)
    

    나중에 확장 기능을 추가/삭제할 때마다 앞의 확장 기능 목록 출력과 git add 및 git commit을 반복하면 됩니다. 「뭔가 개행변이야」라고 git에게 말해집니다만, 무시하고 괜찮을 것 같습니다(아마)
    git add extension_list.txt
    git commit extension_list.txt
    

    일일이 커맨드 두드리는 것이 귀찮기 때문에, 배치에 정리해 스타트업에 두기로 했습니다.
    @echo off
    REM 拡張機能一覧を置いてあるディレクトリ
    cd "C:\Users\hoge\vs_extension"
    code --list-extensions > extension_list.txt
    
    REM 拡張機能一覧を更新するのを待つ
    timeout /t 15
    
    REM 前回のコミットとの差分を取得
    REM 変数は毎回初期化しないと、次にバッチを実行したときに前回の値が残ってしまう
    set diff=
    FOR /F %%i in ('git diff') do set diff=%%i
    
    REM 差分が出ていればコミット
    REM コミットメッセージには差分をそのまま使用
    REM 複数個の拡張機能に変更を加えていても一つしかコミットメッセージに表示されないので注意
    if not "%diff%" == "" (
        git add extension_list.txt
        git commit extension_list.txt -m %diff%
    ) 
    

    이제 자동화 할 수 있습니다 ... 저기? 할 수 없어.
    code --list-extensions > extension_list.txt
    

    이후의 명령은 전혀 실행되지 않습니다.
    원인을 모르기 때문에이 명령 만 다른 배치로 나눕니다.
    스타트업에 넣었습니다.
    자세한 사람, 왜인지 말해주세요.

    Visual Studio Code를 확장 기능 일람대로 재구성(힘이 다함)



    이것도 배치로 할 수 있도록 하고 싶었는데 힘이 다했습니다. 여기에서 수동입니다.

    먼저 들어있는 것을 제거



    궁극적으로 같은 형태로 되어 있으면, 어떻게 입력해도 같습니다.
    한 줄씩 입력하는 것이 귀찮기 때문에, 다음과 같은 입력 방법으로 했습니다.

    확장 프로그램 목록 복사
    맨 앞에 "code"를 입력하십시오. (스쿠쇼라고 빠져 있습니다만, 스페이스가 필요합니다.)


    2행째부터 끝까지 「Ctrl+Alt+↓」로 커서를 펼친다


    "--uninstall-extension"복사 및 붙여넣기


    키보드의 "end"로 줄 끝으로 이동하고 공백을 입력하십시오.


    키보드의 "home"에서 행의 시작으로 이동


    BackSpace에서 한 줄로 만들기


    명령 프롬프트에 붙여넣고 실행

    재설치



    git에서 확장 프로그램 목록을 반환하려는 버전으로 만든 다음 거의 같은 작업을 수행합니다. 복사하고 붙여 넣는 것이 "--uninstall-extension"대신 "--install-extension"입니다.

    시도한 소감



    배치 같은, 아무래도 「나는 SIer로 일해 주시고 있습니다!」라고 느낌의 기술이 아니고, 샤레오트인 언어로 스크립트 조립할 수 있게 되고 싶다.

    좋은 웹페이지 즐겨찾기