터미널 셸 통합
Visual Studio Code는 일반적인 셸과 통합할 수 있는 기능을 제공하여 터미널이 셸 내부에서 실제로 발생하는 일에 대해 더 많은 정보를 이해할 수 있게 합니다. 이 추가 정보는 작업 디렉터리 감지, 명령 감지, 장식, 탐색과 같은 유용한 기능을 가능하게 합니다.
지원되는 셸:
- Linux/macOS: bash, fish, pwsh, zsh
- Windows: Git Bash, pwsh
설치
자동 스크립트 주입
기본적으로, 셸 통합 스크립트는 VS Code에서 실행된 지원되는 셸에서 자동으로 활성화되어야 합니다. 이는 셸 세션이 시작될 때 인수 및/또는 환경 변수를 주입하여 수행됩니다. 이 자동 주입은 setting(terminal.integrated.shellIntegration.enabled)
를 false
로 설정하여 비활성화할 수 있습니다.
이 표준적이고 쉬운 방법은 서브 셸, 일반 ssh
세션(예: Remote - SSH 확장을 사용하지 않을 때) 또는 복잡한 셸 설정과 같은 일부 고급 사용 사례에서는 작동하지 않을 수 있습니다. 이러한 경우에 셸 통합을 활성화하는 권장 방법은 수동 설치입니다.
자동 주입은 구버전의 셸에서는 작동하지 않을 수 있습니다. 예를 들어, 구버전의 fish는 주입이 작동하는 방식인 $XDG_DATA_DIRS
환경 변수를 지원하지 않습니다. 여전히 수동 설치를 통해 작동시킬 수 있습니다.
수동 설치
셸 통합을 수동으로 설치하려면, VS Code 셸 통합 스크립트가 셸 초기화 중에 실행되어야 합니다. 이를 수행하는 위치와 방법은 사용 중인 셸과 운영 체제에 따라 다릅니다. 수동 설치를 사용할 때는 setting(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를 시작하므로 셸 시작 시 약간의 지연이 발생합니다. 이 지연을 완화하기 위해, 스크립트를 미리 경로를 해결하여 인라인으로 추가하고 초기화 스크립트에 직접 추가할 수 있습니다.
# 실행 파일의 경로를 먼저 출력합니다: \{#output-the-executables-path-first}
code --locate-shell-integration-path bash
# 위의 결과를 소스 문에 추가합니다: \{#add-the-result-of-the-above-to-the-source-statement}
[[ "$TERM_PROGRAM" == "vscode" ]] && . "/path/to/shell/integration/script.sh"
명령 장식 및 개요 눈금자
셸 통합 기능을 활용하면, 터미널에서 실행된 명령어의 종료 코드(exit code)를 가져올 수 있습니다. 이를 바탕으로 명령어가 성공했는지 실패했는지를 나타내는 아이콘이 줄 왼쪽에 추가됩니다. 또한, 이 아이콘은 편집기에서 코드 변경 사항을 표시하 는 스크롤 바의 개요 눈금자(overview ruler)에도 나타납니다.
추가된 아이콘을 클릭하면 해당 명령어를 다시 실행하거나 관련된 작업을 수행할 수 있습니다:
명령 및 개요 눈금자는 setting(terminal.integrated.shellIntegration.decorationsEnabled)
설정으로 구성할 수 있습니다.
명령 탐색
셸 통합에 의해 감지된 명령은 명령 탐색 기능(kbStyle(Ctrl/Cmd+Up)
, kbStyle(Ctrl/Cmd+Down)
)에 공급되어 더 신뢰할 수 있는 명령 위치를 제공합니다. 이 기능은 명령 간의 빠른 탐색과 출력 선택을 가능하게 합니다. 현재 위치에서 명령까지 선택하려면 kbStyle(Shift)
를 누르고 kbStyle(Shift+Ctrl/Cmd+Up)
및 kbStyle(Shift+Ctrl/Cmd+Down)
을 누를 수 있습니다.