터미널 셸 통합
Visual Studio Code는 일반적인 셸과 통합할 수 있는 기능을 가지고 있어 셸 내부에서 실제로 무슨 일이 일어나고 있는지 더 잘 이해할 수 있습니다. 이 추가 정보는 작업 디렉토리 감지 및 명령 감지, 데코레이션, 탐색과 같은 유용한 기능을 가능하게 합니다.
지원되는 셸:
- Linux/macOS: bash, fish, pwsh, zsh
- Windows: pwsh
설치
자동 스크립트 삽입
기본적으로, 셸 통합 스크립트는 VS Code에서 실행된 지원되는 셸에서 자동으로 활성화되어야 합니다. 이는 셸 세션이 시작될 때 인수 및/또는 환경 변수를 주입하여 수행됩니다. 이 자동 주입은 terminal.integrated.shellIntegration.enabled
를 false
로 설정하여 비활성화할 수 있습니다.
이 표준적이고 쉬운 방법은 하위 셸, 일반 ssh
세션( Remote - SSH 확장을 사용하지 않는 경우) 또는 일부 복잡한 셸 설정과 같은 고급 사용 사례에서는 작동하지 않을 수 있습니다. 이러한 경우 셸 통합을 활성화하는 권장 방법은 수동 설치입니다.
자동 주입은 셸의 오래된 버전에서는 작동하지 않을 수 있습니다. 예를 들어, 오래된 버전의 fish는 주입이 작동하는 방식인 $XDG_DATA_DIRS
환경 변수를 지원하지 않습니다. 수동 설치를 통해 작동시킬 수 있습니다.
수동 설치
셸 통합을 수동으로 설치하려면 VS Code 셸 통합 스크립트가 셸 초기화 중에 실행되어야 합니다. 이를 수행하는 방법은 사용하는 셸과 OS에 따라 다릅니다. 수동 설치를 사용하는 경우 terminal.integrated.shellIntegration.enabled
를 false
로 설정하는 것이 권장되지만 필수는 아닙니다.
Insiders 빌드를 사용하는 경우 아래의 code
를 code-insiders
로 대체하십시오.
bash
다음 내용을 ~/.bashrc
파일에 추가하십시오. bash에서 code ~/.bashrc
를 실행하여 VS Code에서 파일을 엽니다.
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)"
fish
다음 내용을 config.fish
에 추가하십시오. fish에서 code $__fish_config_dir/config.fish
를 실행하여 VS Code에서 파일을 엽니다.
string match -q "$TERM_PROGRAM" "vscode"
and . (code --locate-shell-integration-path fish)
pwsh
다음 내용을 PowerShell 프로필에 추가하십시오. pwsh에서 code $Profile
을 실행하여 VS Code에서 파일을 엽니다.
if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --locate-shell-integration-path pwsh)" }
zsh
다음 내용을 ~/.zshrc
파일에 추가하십시오. bash에서 code ~/.zshrc
를 실행하여 VS Code에서 파일을 엽니다.
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)"
Git Bash
다음 내용을 ~/.bashrc
파일에 추가하십시오. Git Bash에서 code ~/.bashrc
를 실행하여 VS Code에서 파일을 엽니다.
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)"
이식성 대 성능
위의 셸 통합 설치는 code
가 $PATH
에 있는 경우 모든 설치 유형과 호환되는 크로스 플랫폼입니다. 그러나 이 권장 접근 방식은 스크립트 경로를 가져오기 위해 Node.js를 시작하므로 셸 시작 시 약간의 지연이 발생합니다. 이 지연을 줄이기 위해 스크립트를 미리 해결하고 초기화 스크립트에 직접 추가하여 인라인하십시오.
# 먼저 실행 파일의 경로를 출력합니다:
code --locate-shell-integration-path bash
# 위의 결과를 소스 명령문에 추가합니다:
[[ "$TERM_PROGRAM" == "vscode" ]] && . "/path/to/shell/integration/script.sh"
명령 데코레이션 및 개요 눈금자
셸 통합이 가능하게 하는 것 중 하나는 터미널 내에서 실행된 명령의 종료 코드를 가져오는 기능입니다. 이 정보를 사용하여 명령이 성공했는지 실패했는지를 나타내는 데코레이션이 줄의 왼쪽에 추가됩니다. 이러한 데코레이 션은 편집기에서와 마찬가지로 스크롤 막대의 비교적 새로운 개요 눈금자에도 나타납니다.
데코레이션은 명령을 다시 실행하는 등의 컨텍스트 작업을 제공하기 위해 상호 작용할 수 있습니다:
명령 및 개요 눈금자 데코레이션은 terminal.integrated.shellIntegration.decorationsEnabled
설정으로 구성할 수 있습니다.
명령 탐색
셸 통합에 의해 감지된 명령은 명령 탐색 기능(Ctrl/Cmd+Up
, Ctrl/Cmd+Down
)에 피드되어 더 신뢰할 수 있는 명령 위치를 제공합니다. 이 기능을 사용하면 명령 간 빠른 탐색과 출력 선택이 가능합니다. 현재 위치에서 명령까지 선택하려면 Shift
를 누른 상태에서 Shift+Ctrl/Cmd+Up
및 Shift+Ctrl/Cmd+Down
을 누를 수 있습니다.
명령 가이드
명령 가이드는 명령과 그 출력을 마우스로 가리킬 때 나타나는 막대입니다. 이는 명령을 더 빨리 식별하는 데 도움이 되며 셸 통합이 제대로 작동하는지 확인하는 방법이기도 합니다.
명령 가이드의 색상은 색상 테마를 사용하여 사용자 정의할 수 있습니다. 명령 가이드를 토글하려면 terminal.integrated.shellIntegration.showCommandGuide
설정을 구성하십시오.
고정 스크롤
고정 스크롤 기능은 터미널 상단에 부분적으로 표시되는 명령을 "고정"하여 해당 출력이 어떤 명령에 속하는지 훨씬 쉽게 볼 수 있게 합니다. 고정 스크롤 구성 요소를 클릭하면 터미널 버퍼에서 명령의 위치로 스크롤됩니다.
이는 terminal.integrated.stickyScroll.enabled
설정으로 활성화할 수 있습니다.
빠른 수정
VS Code는 명령의 출력을 스캔하고 사용자가 다음에 수행할 가능성 이 높은 작업을 제안하는 빠른 수정 기능을 제공합니다.
다음은 일부 내장된 빠른 수정 사항입니다:
- 포트가 이미 수신 중인 경우, 프로세스를 종료하고 이전 명령을 다시 실행하도록 제안합니다.
git push
가 업스트림이 설정되지 않아 실패한 경우, 업스트림을 설정하여 푸시하도록 제안합니다.git
하위 명령이 유사한 명령 오류로 실패한 경우, 유사한 명령을 사용하도록 제안합니다.git push
가 GitHub PR을 생성하라는 제안을 결과로 반환하는 경우, 링크를 열도록 제안합니다.General
또는cmd-not-found
PowerShell 피드백 제공자가 트리거된 경우, 각 제안을 제안합니다.
빠른 수정 기능은 빠른 수정이 가능할 때 추가 피드백을 제공하기 위해 접근성 신호를 지원합니다.
최근 명령 실행
Terminal: Run Recent Command 명령은 다양한 소스의 기록을 빠른 선택으로 제공하여 셸의 역방향 검색(Ctrl+R
)과 유사한 기능을 제공합니다. 소스는 현재 세션의 기록, 이 셸 유형의 이전 세션 기록 및 공통 셸 기록 파일입니다.