programing

통합 터미널 및 작업에 대해 Visual Studio Code가 갑자기 PowerShell로 기본 설정됨

telebox 2023. 8. 5. 10:05
반응형

통합 터미널 및 작업에 대해 Visual Studio Code가 갑자기 PowerShell로 기본 설정됨

제가 오늘 아침에 일어나서 Visual Studio Code를 실행했을 때, 실행 시 기본 터미널인 Visual Studio Code가 Git Bash가 아닌 PowerShell이 되었습니다.Windows에 있습니다.settings.json을 사용할 수 없도록 변경해 보았습니다.제가 놓친 게 있나요?

{
    "workbench.startupEditor": "newUntitledFile",
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
    "[javascript]": {
        "editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
    },
    "aws.samcli.location": "C:\\Users\\king\\AppData\\Roaming\\npm\\sam.exe",
    "typescript.updateImportsOnFileMove.enabled": "always",
    "[html]": {
        "editor.defaultFormatter": "vscode.html-language-features"
    },
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "javascript.updateImportsOnFileMove.enabled": "always",
    "explorer.confirmDragAndDrop": false,
    "diffEditor.maxComputationTime": 0,
    "extensions.ignoreRecommendations": true,
    "[typescript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "editor.renderControlCharacters": true,
    "[jsonc]": {

        "editor.quickSuggestions": {
            "strings": true
        },
        "editor.suggest.insertMode": "replace"
    },
    "window.zoomLevel": 0,
    "editor.accessibilitySupport": "off",
    "workbench.editor.untitled.hint": "hidden",
    "terminal.integrated.defaultProfile.windows": "Git Bash",
    "terminal.external.windowsExec": "C:\\Program Files\\Git\\bin\\bash.exe",
    "terminal.explorerKind": "external",
    "terminal.integrated.automationShell.linux": ""
}

와 관련된 스택 오버플로 게시물이 기본 PowerShell을 만들고 있지만, 특히 PowerShell을 중지하는 것이 목표이기 때문에 잘못된 설정은 보이지 않았습니다!

업데이트: 버전 v1.60.0에 버그가 있습니다. 문제를 해결하려면 v1.60.1 이상으로 업그레이드합니다.

이 버그는 다음과 같은 증상으로 나타납니다.

  • Open in Integrated Terminal탐색기 창의 바로 가기에 있는 바로 가기 메뉴 명령은 구성된 셸을 무시하고 항상 기본 셸(Windows의 경우 PowerShell)을 사용합니다.

  • 별도의 작업이 있든 없든 작업을 실행할 때도 마찬가지입니다.terminal.integrated.automationShell.*설정).

  • 또한 Visual Studio Code를 종료할 때 지정된 폴더나 작업영역에 통합 터미널이 열려 있는 경우 다음 번에 통합 터미널이 자동으로 다시 열릴 때 시작되는 셸은 구성된 셸이 아닌 다시 기본 셸입니다.반대로 다시 열어도 통합 터미널이 자동으로 열리지 않는 경우 수동으로 열어도 구성된 기본 셸과 나중에 다른 셸 인스턴스를 수동으로 만들 수 있습니다.

GitHub 이슈 #132150 참조

다음 정보는 버그와 관련이 없는 것으로 밝혀졌지만, 통합 터미널의 셸이 구성되는 방식에 대한 Visual Studio Code의 최근 변경에 대한 유용한 일반 정보일 것입니다.


기존 기본 셸 설정에서 셸 프로파일로 마이그레이션:

  • 최근에는 및 설정이 더 이상 사용되지 않고 소위 프로파일을 통해 여러 셸을 선택할 있는 보다 유연한 모델로 대체되었습니다."terminal.integrated.profiles.*" 필수 항목인 " 관사과함께항무""terminal.integrated.defaultProfile.*"기본적으로 사용할 프로파일 이름을 참조하는 설정 - 명시적으로 정의된 사용자 정의 프로파일이거나 플랫폼에 적합한 기본 프로파일 중 하나일 수 있습니다.

    • 참고:*위의 설정에서 이름은 적절한 플랫폼 식별자를 나타냅니다. 즉,windows,linux또는osx (macOS).
  • , v1.60.1일 ,"terminal.integrated.shell.*"설정도 존재하며 설정이 우선합니다(편집 시 도구 설명)."terminal.integrated.shell.*"settings.json이러한 변화가 아직 일어나지 않았음을 시사합니다.

    • 가지 설정이 모두 없는 경우 Windows에서는 PowerShell이고 Unix와 유사한 플랫폼에서는 [1]환경 변수지정된 대로 사용자의 기본 셸인 Visual Studio Code의 기본 셸이 사용됩니다.

    • v1.60 이전 버전에서 시작된 최근 Visual Studio Code 버전은 일회성으로 보이는 경우 사용되지 않는 설정을 새 설정으로 마이그레이션하는 프롬프트 오퍼링을 표시했습니다.

      • 마이그레이션을 수락하면 다음과 같은 결과가 발생합니다.

        • 정성작설"terminal.integrated.shell.*" 설정 셸 포함 시 설 값 사 셸 프 필"terminal.integrated.shell.*", 그고있, 만다면약리,"terminal.integrated.shellArgs.*" 사용자 프로필의 " 해사용지정프이로름접있다습미니가사에의필당자다"가 있습니다. (migrated)
        • 정성작설terminal.integrated.defaultProfile.*이 값은 마이그레이션된 프로필의 이름으로, 기본 셸이 됩니다.
        • 설정 존기 정제거"terminal.integrated.shell.*"그리고."terminal.integrated.shellArgs.*"
      • 마이그레이션을 거부하는 경우 아래 설명과 같이 나중에 기본 셸을 다시 선택하여 마이그레이션을 효과적으로 수행할 수 있습니다.

        • 참고: 새로운 기능"terminal.integrated.defaultProfile.*"프로세스에서 생성된 설정은 레거시를 효과적으로 재정의합니다."terminal.integrated.shell.*"그리고."terminal.integrated.shellArgs.*"설정은 자동으로 제거되지 않습니다.혼동을 방지하려면 다음에서 제거하는 것이 가장 좋습니다.settings.jsonmanually
  • 기본 셸을 지정하기 위해 사용할 기본프로파일을 선택합니다.

    • 아이콘의 합니다.shell selector단말기 에서 ) 통합터의오서에다선음택니다합을른쪽널미▁)▁)▁select다를 선택합니다.Select Default Profile기본값을 선택하기 위해 정의된 프로파일 목록을 제공합니다. 명시적으로 정의된 프로파일이 없는 경우 표준 프로파일이 제공됩니다(아래 참조).

    • 은 이는다같다습니과음▁a다ates▁into같니▁this습으로 번역됩니다.terminal.integrated.defaultProfile.*에서 settings.json이 값은 선택한 셸 프로파일의 이름입니다. 이는 내장 프로파일의 이름이거나 명시적으로 정의된 프로파일 중 하나일 수 있습니다."terminal.integrated.profiles.*"

    • 참고: 이 셸은 기본적으로 작업에도 사용됩니다(에서 정의됨).tasks.json)로 수 , 는 )로 덮어쓸 수 있습니다."terminal.integrated.automationShell.*"대체 셸의 실행 파일을 가리키는 설정입니다.

  • 선택적으로, 당신의settings.json파일: 관심 있는 프로파일을 사용하여 플랫폼적합한 설정을 만들 수 있습니다.

    • 의 참고: 도.settings.json없음 포함(플랫폼 적합)"terminal.integrated.profiles.*"Visual Studio 코드에는 기본 표준 프로필이 포함되어 있으며 기본 셸을 선택할 때 선택할 수 있습니다.

      • 이러한 표준 프로파일은 호스트 플랫폼과 함께 제공되는 셸과 윈도우즈의 Git Bash와 같이 Visual Studio가 지정된 시스템에서 동적으로 검색하는 일부 셸이 혼합된 것입니다.
    • 표준 프로파일을 명시적으로 생성하려면 다음을 수행합니다.

      • 참고: 표준 프로파일을 사용자 정의하기 위해 이 작업을 선택할 수 있습니다.그러나 사용자 정의 프로필을 추가하는 이 목적이라면 - 예를 들어 이 답변을 참조하십시오 - 표준 프로필을 내부에 생성할 필요는 없습니다."terminal.integrated.profiles.*"Visual Studio Code는 명시적으로 정의되지 않은 경우에도 이러한 설정에 대해 알고 있기 때문입니다.

      • 경유File > Preferences > Settings(),Ctrl-, 검색profiles합니다.Edit in settings.json Terminal > Integrated > Profiles > * 이렇게 설정, 림열이 열립니다.settings.json표준 프로필을 추가하여 편집할 수 있습니다. 파일을 저장하기만 하면 됩니다.

        • 고참: 만약인 "terminal.integrated.profiles.*"표시된 설정에 플랫폼에 적합한 예상 표준 프로필이 포함되어 있지 않습니다. 해당 이름의 설정이 이미 존재할 수 있습니다. 표준 프로필을 강제로 생성하고 기존 설정을 제거하거나 주석을 추가하여 파일을 저장한 다음 다시 시도하십시오.
      • Windows(윈도우)에서는 다음과 같은 작업이 수행됩니다.

        "terminal.integrated.profiles.windows": {
          "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell"
          },
          "Command Prompt": {
            "path": [
              "${env:windir}\\Sysnative\\cmd.exe",
              "${env:windir}\\System32\\cmd.exe"
            ],
            "args": [],
            "icon": "terminal-cmd"
          },
          "Git Bash": {
            "source": "Git Bash"
          }
        }
        

Visual Studio Code에 사용되는 다양한 셸 유형에 대한 개요를 제공하는 질문에서 링크하는 답변이 새 셸 프로파일에 대한 정보를 반영하도록 업데이트되었습니다.


참고:PowerShell(Core) v6+ 설치가 발견되면 기본 제공 윈도우즈 PowerShell 버전보다 우선합니다.

편집:1

참고: 이제 이 버그는 VSCode를 통해 해결되었습니다.VSCode를 최신 버전으로 업데이트하십시오(2021년 9월 17일).


일시적인 해결책이 있습니다.

이 를 먼저이코붙습니다여넣를에 .settings.json그리고 저장

"terminal.integrated.defaultProfile.windows": "Git Bash",

"terminal.integrated.profiles.windows": {
 "C:\\Program Files\\Git\\bin\\bash.exe": {
  "path": "",
  "args": []
 }
},

를 닫기 에 VSCode를 합니다.OutputTerminal

  1. 이제 VSCode를 열 수 있습니다.
  2. VSCode가 로드된 후 Terminal을 클릭해야 합니다.이제 bash가 표시됩니다.
  3. VSCode를 닫기 전에 출력을 선택합니다.

참조: VSCode가 윈도우즈에서 $Bash가 아닌 통합 터미널용 PowerShell로 갑자기 기본 설정됨

참고: 이것은 해결책이 아닙니다.당신이 실망하는 것을 막을 수 있을지도 모르기 때문에 공유했습니다.

제가 처음 올린 글인데, 틀린 부분이 있으면 수정할 수 있도록 알려주세요.

공식 웹 사이트 https://code.visualstudio.com/updates/v1_59 (현재 상단에 있음)에서 언제든지 이전 릴리스를 다운로드하여 설치할 수 있습니다.

버전 1.60이 버그로 처리되었기 때문에 v1.59가 적합합니다.

자동 업데이트 사용 안 함

여기에 설명되어 있습니다.

  1. 설정 열기File > Preferences > Settings.
  2. 더하다"update.mode": "none"설정으로 이동합니다.

이전 버전 설치

나중에 다운로드한 버전을 설치하여 현재 버전을 덮어쓸 수 있습니다.

참고: 다음 버전이 해결될 때까지 기다리십시오. 따라서 자동 업데이트를 사용할 수 없도록 설정했다는 것을 기억하십시오.

저도 같은 문제가 있지만 명령 프롬프트를 실행하려고 합니다....에 추가하여 수정합니다.\Code\User\settings.json

"말단.통합된.자동화Shell.windows": "cmd.exe",

이는 PR 154290을 통해 VSCode 1.70(2022년 7월)에 완화/향상을 추가하고 91b82c0을 적용할 문제 138999와 관련이 있을 수 있습니다.

사용 가능한 프로필이 준비될 수 있도록 장벽을 높입니다.

프로필이 준비될 때까지 최대 20초 동안 기다리십시오. 그러면 첫 번째 터미널을 시작하기 전에 실제 기본 터미널을 확인할 수 있습니다.
이렇게 오래 걸리진 않을 것으로 예상됩니다.

사용자 설정이 동기화된 VSCode의 경우 프로파일이 완전히 로드되는 데 예상보다 많은 시간이 소요될 수 있으므로 이 문제를 해결할 수 있습니다.

설정.json에서 CMD를 Git Bash :-)로 바꾸기만 하면 됩니다.

"terminal.integrated.profiles.windows": {
    "PowerShell": {
        "source": "PowerShell",
        "icon": "terminal-powershell"
    },
    "Command Prompt": {
        "path": [
            //"${env:windir}\\Sysnative\\cmd.exe",
            //"${env:windir}\\System32\\cmd.exe"
            "C:\\PrivateProgramms\\Git\\bin\\bash.exe"
        ],
        "args": [],
        "icon": "terminal-cmd"
    },
   "Git Bash": {
        "source": "Git Bash"
        //"path": [  "C:\\PrivateProgramms\\Git\\bin\\bash.exe" ],
        //"args": [],
        //"icon": "terminal-cmd"
    }
},
"terminal.integrated.defaultProfile.windows": "Command Prompt"

언급URL : https://stackoverflow.com/questions/69047142/visual-studio-code-is-suddenly-defaulting-to-powershell-for-integrated-terminal

반응형