Bash가 Ch, Cj, Ck 및 Cl을 삼키고 있습니다.

Bash가 Ch, Cj, Ck 및 Cl을 삼키고 있습니다.

Tmux의 창 사이를 이동하기 위해 Ch ... Cl을 매핑하려고 할 때 이 문제를 발견했습니다. 키를 눌렀을 때 아무 것도 Tmux로 전송되지 않습니다.

이것은 Bash 4.3.11이 설치된 Ubuntu 14.04 VM에 있습니다. Mac OS Mojave에서 SSH로 접속하고 있습니다.

Mac에서 이 키를 사용할 수 있습니다. 예를 들어, cat에 입력하면 키를 받고 다음과 같은 텍스트가 출력됩니다.

  ~/mac: cat
^H^K^L

명시적으로 할당된 터미널을 사용하여 내 VM에서 cat over ssh를 실행하면 다음과 같이 작동합니다.

  ~/mac: ssh -t vm "cat"
^H^K^L

그러나 내 VM에 로그인하고 cat을 실행하면 문자가 cat으로 전달되는 대신 삼켜집니다.

  ~/vm: cat


# hitting C-h, C-k, C-l...nothing happens

실험에서 cat알 수 있듯이 입력을 삼키는 것은 내 VM의 터미널이 아닙니다. 내 이해는 입력이 터미널에서 bash, bash 내부에서 실행되는 프로세스로 이동하므로 bash가 입력을 삼키는 것임을 나타내는 것 같습니다. 어떻게 더 디버깅할 수 있나요?

답변1

면책조항: 이것을 코멘트로 적고 싶지만 카르마가 충분하지 않으므로 저를 비추천하지 마세요.

Bash는 GNU readline 라이브러리를 사용하여 명령줄 편집 및 키 바인딩을 처리합니다.

키 시퀀스를 방해하고 통과하는 것을 방해하는 "Control-hjkl"에 바인딩된 것이 있는지 확인할 수 있도록 이 명령의 출력을 게시할 수 있습니까?

bind -p | grep -v "(not bound)"

관련 정보