플러그인 · 셸 통합

blocks

셸이 알려 주는 신호를 받아 “어디부터 어디까지가 한 명령인가”를 알아냅니다 — 명령마다 시작·끝 위치, 종료 코드, 그때의 작업 디렉토리, 그리고 사용자가 친 명령 문구까지.

지금 무엇이 달라지나

이 플러그인은 정보를 모으는 쪽이고, 그것을 화면에 그리는 일은 클라이언트 몫입니다. 지금 배포되는 파이썬 클라이언트는 이 정보를 요청하지 않으므로, 켜 두어도 화면은 종전과 완전히 같습니다 (프레임도 한 바이트 늘지 않습니다 — 클라이언트가 접속할 때 “나는 블록을 그린다”고 밝힌 경우에만 서버가 보냅니다). 블록을 실제로 그리는 것은 따로 배포되는 러스트 TUI 클라이언트이고, 이 페이지는 그 준비를 위한 셸 쪽 설정을 설명합니다. 설치해 두면 나중에 그 클라이언트로 붙었을 때 바로 동작합니다.

셸 통합 설치

안 깔아도 아무것도 깨지지 않습니다 — 블록이 안 생길 뿐입니다. 쓰는 규약은 OSC 133 시맨틱 프롬프트로, iTerm2 가 만들고 kitty · WezTerm · VS Code 가 따르는 사실상 표준입니다. 그래서 같은 설정을 다른 터미널에서 써도 문제가 없습니다.

bash · zsh

echo '[ -n "$PYTMUX" ] && source ~/.pytmux/shell-integration.sh' >> ~/.zshrc

PowerShell (Windows)

if ($env:PYTMUX) { . "$HOME\.pytmux\shell-integration.ps1" }

스크립트는 pytmuxlib/plugins/blocks/ 안에 있습니다 (shell-integration.sh · shell-integration.ps1). PowerShell 판은 기존 prompt 함수와 PSReadLine 편집·히스토리를 덮지 않고 감싸므로, 쓰던 프롬프트가 그대로 유지됩니다. 두 판 모두 같은 신호를 보내 서버 쪽에는 셸별 분기가 없습니다.

셸이 보내는 신호

신호
OSC 133 ; A / B프롬프트 시작 / 명령 입력 시작
OSC 133 ; C명령 실행 시작(여기부터 출력)
OSC 133 ; D ; <종료코드>명령 끝 — 성공·실패가 여기서 갈립니다
OSC 7그 시점의 작업 디렉토리(Windows 드라이브 경로 포함)
OSC 633 ; E사용자가 친 명령 문구 그대로(VS Code 셸 통합과 같은 확장)

경계는 서버가 판정합니다 — 클라이언트마다 따로 추정하면 서로 다른 블록을 보게 되기 때문입니다. 위치는 화면이 아니라 스크롤백 절대 행으로 잡아, 스크롤해도 블록이 따라 움직이지 않습니다.

끄기 · 제거

:plugins 관리 팝업에서 끄거나(가역), pytmuxlib/plugins/blocks/ 디렉토리를 지우면(delete-to-disable) 조용히 사라집니다. 셸 쪽 설정만 남아 있어도 무해합니다 — 다른 터미널이 같은 신호를 이해하기 때문입니다. ← 플러그인 개요