터미널 기술: 더 나은 타이핑을 위한 특수 키코드. 목록을 찾을 수 없습니다

터미널 기술: 더 나은 타이핑을 위한 특수 키코드. 목록을 찾을 수 없습니다

특히 명령을 입력할 때 터미널 기술을 향상시켜 효율성을 높이고 싶습니다. 예를 들어, 명령을 입력할 때 백스페이스를 5번 누르는 대신 커서 왼쪽에 있는 단어를 삭제하고 싶습니다.

나는 이것이 어떻게 작동하는지 이미 알고 있습니다. 터미널 응용 프로그램은 예를 들어 키보드 단축키를 캡처 Ctrl-backspace하고 특수 키코드를 셸로 보낼 수 있습니다. 쉘에는 이러한 유형의 편집을 위한 기능이 내장되어 있으며 키코드를 인식하고 원하는 작업을 수행할 수 있습니다. 내가 올바르게 설명했나요?

키코드 설정 바로가기

작동하고 기능도 훌륭하지만 가능한 항목 목록은 어디서 찾을 수 있나요? 바로 오늘 나는 이것이 0x1f"실행 취소"를 의미한다는 것을 깨달았습니다. 나는 이것이 가능하다는 것을 전혀 몰랐고 그것을 좋아합니다! 다른 것이 가능한지 보고 싶지만 무엇을 찾아야 할지 모르겠습니다! 한 시간 반 정도 시도하다가 포기했어요.

저는 기본 Zsh 5.8 셸인 Macos와 iTerm2 애플리케이션을 사용하고 있습니다.

답변1

이러한 키보드 단축키는 쉘 매뉴얼에 문서화되어 있습니다. 쉘이 zsh이므로 이 장을 읽으십시오."Zsh 라인 편집기"설명서에서 로컬로 사용 가능합니다 man zshzle.

Control 및 ESC 키 바인딩과 키보드 키 간의 해당 관계는 다음을 참조하세요.키 바인딩 테이블?그리고키보드 입력과 텍스트 출력은 어떻게 작동합니까?일부 배경. 특히 Ctrl+를 누른 V다음 키를 누르면 전송되는 이스케이프 시퀀스를 볼 수 있습니다. Mac 터미널에서 기본적으로 Option키를 누르면 ESC가 전송되고 그 뒤에 키를 누르면 전송되는 내용(보통)이 전송됩니다.

답변2

답을 찾았습니다. 제가 설명한 기능은 명령을 통해 제어됩니다 bindkey. 옵션 없이 바인딩 키를 실행하면 현재 바인딩이 인쇄됩니다. 예는 다음과 같습니다.

"^@" set-mark-command
"^A" beginning-of-line
"^B" backward-char
"^D" delete-char-or-list
"^E" end-of-line
"^F" forward-char
"^G" send-break
"^H" backward-delete-char
"^I" expand-or-complete
"^J" accept-line
"^K" kill-line
...

이것이 "키바인딩"이라고 불리는지 몰랐기 때문에 Google에서 답변을 찾을 수 없었습니다.

이제 가능성 목록이 있으므로 iTerm2를 사용하는 사람들에게 실제로 유용한 답변을 만들기 위해 이를 16진수로 변환하기만 하면 됩니다.

관련 정보