Windows Terminal에서 현재 디렉토리 복사 창 또는 탭 상속
9429 단어 WindowsWindows Terminaltech
Windows Terminal에서 작업할 때 창과 탭을 열고 원래 같은 디렉터리
cd
로 이동하는 작업을 해 본 적이 있습니까?예를 들어 테스트를 실행하는 동안 코드 변경 프로그램을 제출합니다.본고에서 소개한 내용을 설정하면 원본 디렉터리를 계승하는 창이나 탭을 열 수 있습니다.
디렉터리 경로 복제, 검색
cd
의 역사 기록 등 작업에서 해방!설정 전
설정 후
아래에 새로 열린 창의 현재 디렉터리는 원래의 현재 디렉터리
~/workspace
를 계승합니다.설정
케이스의 세계에서 출력을 피하는 시퀀스로 설정하고 현재 디렉터리를 Windows Terminal에 알려야 합니다.이 도피 서열의 출력은 케이스마다 따로 설정해야 합니다.
다음은 각 조개를 설치하는 방법입니다.
bash - Cygwin/MSYS2
.bashrc
에서 다음과 같은 내용을 보충한다.function _windows_terminal_osc_9_9 {
# Inform Terminal about shell current working directory
# see: https://github.com/microsoft/terminal/issues/8166
printf '\e]9;9;%s\e\' "$(cygpath --windows "$(pwd)")"
}
PROMPT_COMMAND="_windows_terminal_osc_9_9; ${PROMPT_COMMAND}"
MSYS2msys2_shell.cmd
를 사용하여 부팅 케이스로 설정할 때 -here
옵션을 지정해야 합니다.예:settings.json(Windows Terminal)
"commandline": "C:/msys64/msys2_shell.cmd -no-start -defterm -msys2 -here -shell bash",
bash - WSL2
.bashrc
에서 다음과 같은 내용을 보충한다.function _windows_terminal_osc_9_9 {
# Inform Terminal about shell current working directory
# see: https://github.com/microsoft/terminal/issues/8166
printf '\e]9;9;%s\e\' "$(wslpath -w "$(pwd)")"
}
PROMPT_COMMAND="_windows_terminal_osc_9_9; ${PROMPT_COMMAND}"
zsh - Cygwin/MSYS2
.zshrc
에서 다음과 같은 내용을 보충한다.function _windows_terminal_osc_9_9 {
# Inform Terminal about shell current working directory
# see: https://github.com/microsoft/terminal/issues/8166
printf '\e]9;9;%s\e\' "$(cygpath --windows "$(pwd)")"
}
precmd_functions+=(_windows_terminal_osc_9_9)
MSYS2msys2_shell.cmd
를 사용하여 부팅 케이스로 설정할 때 -here
옵션을 지정해야 합니다.예:settings.json(Windows Terminal)
"commandline": "C:/msys64/msys2_shell.cmd -no-start -defterm -msys2 -here -shell zsh",
zsh - WSL2
.zshrc
에서 다음과 같은 내용을 보충한다.function _windows_terminal_osc_9_9 {
# Inform Terminal about shell current working directory
# see: https://github.com/microsoft/terminal/issues/8166
printf '\e]9;9;%s\e\' "$(wslpath -w "$(pwd)")"
}
precmd_functions+=(_windows_terminal_osc_9_9)
PowerShell
프로필을 만들고 다음 함수를 추가합니다.프로파일을 만드는 방법은 다음 기사를 참조하십시오.
PowerShell로 프로파일 만드는 방법
function prompt {
$p = $($executionContext.SessionState.Path.CurrentLocation)
$converted_path = Convert-Path $p
$ansi_escape = [char]27
"PS $p$('>' * ($nestedPromptLevel + 1)) ";
Write-Host "$ansi_escape]9;9;$converted_path$ansi_escape\"
}
※ 이 코드는 https://gist.github.com/skyline75489/480d036db8ae9069b7009377e6eebb79에서 인용되었습니다.구조
발표 노트에는 ConEmu 독자적인 도피 시퀀스
OSC 9;9;<windows path>
(OSC: Operating 시스템 m commands) 를 지원한다고 기록되어 있다.(ConEmu는 Windows 전용 터미널 에뮬레이터 중 하나)The terminal now supports ConEmu’s OSC 9;9 sequence , which sets the current working directory. If you emit
OSC 9;9;<Windows path>
, creating a duplicate of that pane or tab will use the Windows path you specified (Thanks @skyline75489! ).Windows Terminal Preview 1.6 Release | Windows Command Line
탈출 시퀀스는 터미널에 표시되는 문자 색상 변경, 커서 위치 변경 등 터미널을 제어하는 데 사용되는 특수 문자열입니다.탈출 시퀀스 자체는 터미널에 문자로 표시되지 않습니다.
자세한 설명: ANSI 탈출 코드 - 콘솔 제어 - 벽색 공방
이전 장에서 설명한 설정은 터미널에서 알림을 표시할 때 (문자를 입력한 곳) 매번 출력 시퀀스
OSC 9;9;<Windows path>
이다.cd
에서 디렉터리를 이동하면 알림이 표시될 때 이동한 디렉터리가 터미널로 전송되기 때문에 분할 창cd
이후의 디렉터리가 계승됩니다.
Reference
이 문제에 관하여(Windows Terminal에서 현재 디렉토리 복사 창 또는 탭 상속), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/negokaz/articles/windows-terminal-osc_9_9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)