Pi 구성, 확장, 플랫폼 설정 및 API 참조.

tmux 설정

Pi는 tmux 내부에서 작동하지만 tmux는 기본적으로 특정 키에서 수정자 정보를 제거합니다. 구성하지 않으면 Shift+EnterCtrl+Enter는 일반적으로 일반 Enter와 구별할 수 없습니다.

권장 구성

~/.tmux.conf에 추가:

set -g extended-keys on
set -g extended-keys-format csi-u

그런 다음 tmux를 완전히 다시 시작하세요.

tmux kill-server
tmux

Pi 키티 키보드 프로토콜을 사용할 수 없을 때 자동으로 확장 키 보고를 요청합니다. extended-keys-format csi-u를 사용하면 tmux는 가장 안정적인 구성인 CSI-u 형식으로 수정된 키를 전달합니다. extended-keys-format 옵션을 사용하려면 tmux 3.5 이상이 필요합니다.

csi-u이 권장되는 이유

다음만 포함:

set -g extended-keys on

tmux의 기본값은 extended-keys-format xterm입니다. 애플리케이션이 확장 키 보고를 요청하면 수정된 키는 다음과 같은 xterm modifyOtherKeys 형식으로 전달됩니다.

  • Ctrl+C\x1b[27;5;99~
  • Ctrl+D\x1b[27;5;100~
  • Ctrl+Enter\x1b[27;5;13~

extended-keys-format csi-u를 사용하면 동일한 키가 다음과 같이 전달됩니다.

  • Ctrl+C\x1b[99;5u
  • Ctrl+D\x1b[100;5u
  • Ctrl+Enter\x1b[13;5u

Pi는 두 가지 형식을 모두 지원하지만 csi-u가 권장되는 tmux 설정입니다.

이로 인해 해결되는 사항

tmux 확장 키가 없으면 수정된 Enter 키가 레거시 시퀀스로 축소됩니다.

열쇠 확장키 없이 csi-u
입력하다 \r \r
Shift+Enter \r \x1b[13;2u
Ctrl+Enter \r \x1b[13;5u
Alt/Option+Enter \x1b\r \x1b[13;3u

이는 기본 키 바인딩(제출의 경우 Enter, 개행의 경우 Shift+Enter)과 수정된 Enter를 사용하는 모든 사용자 지정 키 바인딩에 영향을 미칩니다.

요구사항

  • tmux extended-keys-format csi-u의 경우 3.5 이상(확인하려면 tmux -V을 실행하세요)
  • 확장 키를 지원하는 터미널 에뮬레이터(Ghostty, Kitty, iTerm2, WezTerm, Windows Terminal)

tmux 3.2~3.4에서는 extended-keys-format csi-u를 생략합니다. Pi는 여전히 tmux의 기본 xterm modifyOtherKeys 형식을 지원합니다.