z-shell에서 이스케이프되도록 바인딩 캡 잠금 더 잘 사용하기 위해

z-shell 라인 편집기에서 vi 모드를 더 잘 사용하기 위해 Caps Lock을 z-shell에서 빠져 나오도록 리 바인드하고 싶습니다. 전체 시스템에 리 바인드하고 싶지 않습니다. 이것이 가능한가?

(중요하다면 데비안에 있습니다)



답변

아니요, Z 쉘이 수행하지 않기 때문입니다.

원시 키보드 작성 / 중단 이벤트는 키보드 장치에서 발생합니다. 이들은 단말기 에뮬레이터에 의해 처리된다 – 중 하나는 오퍼레이팅 시스템 커널 또는 1과 같은 GUI에 내장 xterm, gnome-terminal, lxterminal등. 터미널 에뮬레이터는 키보드 이벤트를 문자 시퀀스로 변환하고 가상 터미널의 의사 터미널의 “마스터”쪽 또는 일반적으로 숨겨진 “마스터”쪽으로 푸시합니다. 이것들은 터미널 라인 규율을 통과 한 다음 Z 터미널 만이 의사 터미널 / 가상 콘솔의 “슬레이브”쪽에서 읽은 입력으로 결과를 확인합니다.

라인 제어에서는 “잠금”및 “수정 자”키가 처리되지 않습니다. 이것을 이해하기 위해 직렬 회선을 통해 연결된 실제 터미널 ( “의사”및 “가상”터미널이 아닌) 의 시대를 생각하십시오 . 터미널에서 시스템으로 직렬 회선을 통과하는 문자에는 이미 수정자가 적용되어 있습니다. caps lockplus a는 터미널에 의해 이미 “A”로 번역되었으며, 이것이 터미널에 의해 전송되는 것이며 라인 규칙에 도달하는 것입니다. (비슷하게, controlc이미 ASCII의 단말기에 의해 변환 된 ETX문자).

따라서 caps lock실제로 다른 수정 자 (modifier)의 기능을 조정하려면 터미널조정해야합니다 . 귀하의 경우, 사용중인 터미널 에뮬레이터 를 조정해야합니다 .

  • X Window System 기반 터미널 에뮬레이터를 사용하면 원시 키보드 장치와 터미널 에뮬레이터 프로그램 사이에 X 레이어가 있으므로 X 키보드 매핑으로 멋지게 만들 수 있습니다.
  • 운영 체제에 내장 된 터미널 에뮬레이터를 사용하면 일반적으로 운영 체제 커널에 운영 체제 키 코드-문자 매핑 계층을 포함하는 매우 다른 키보드 매핑 시스템이 있습니다. 그것은 (BSD에 즉, 리눅스) 커널 커널에서 격렬하게 다르며, 어떤 도구 당신은 (에서 예를 들어, 심지어 리눅스 배포판 리눅스 배포판에서 격렬하게 변화 조정 실행 localectl을 통해 dpkg-reconfigure console-setupinvoke-rc.d console-screen.sh).

그러나 이것은 터미널 의 동작을 변경하기 때문에 해당 터미널에서 입력을받는 모든 프로그램에 영향을 미칩니다. GUI 터미널 에뮬레이터의 경우 해당 의사 터미널에서 입력 을받는 모든 프로그램에 영향을 미칩니다 . 가상 콘솔을 처리하는 커널의 터미널 에뮬레이터의 경우 해당 가상 콘솔에서 입력 을받는 모든 프로그램에 영향을 미칩니다 .

전체 시스템에는 영향을 미치지 않지만 Z 쉘에만 영향을 미치는 원하는 것보다 많은 영향을 미칩니다.

추가 자료


답변