배쉬, ^ H와 ^를 전역 적으로 고치는 방법? 백 스페이스 문제


12

원격 서버의 셸에서 터미널의 백 스페이스 키가 ^?있다고 생각하고 때로는 키가 있다고 생각하고 ^H백 스페이스를 누르면 잘못된 문자가 출력되고 잘못된 문자가 출력되는 이 빈번한 문제를 해결하고 싶습니다 . ^ H 또는 ^로 설정하면? 함께 stty erase ^H또는 stty erase ^?내 .bashrc에 파일, 서버에 액세스하기 위해 다른 터미널을 사용, 그것은 종종 잘못 끝납니다. 그래서 stty erase [whatever]백 스페이스 키가 잘못되었을 때 수동으로 입력 하여 수정해야합니다.

내가하고 싶은 것은 바인딩 ^?하고 ^H백 스페이스에 바인딩하는 것입니다.이 작업을 수행 할 수 있으면 모든 .bashrc 파일에 파일을 추가하면이 악몽이 끝날 것입니다. 이것이 가능한가? 그렇다면 어떻게?

답변:


8

이 페이지 에는이 문제에 필요한 모든 정보가 있습니다. 나는 당신이 그것을 읽을 것을 제안합니다. 이제 bash를 사용하는 ~/.inputrc경우 다음 행이 포함 된 파일 을 작성하면 충분합니다 .

"\e[3~": delete-char
# this is actually equivalent to "\C-?": delete-char
# VT
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# kvt
"\e[H":beginning-of-line
"\e[F":end-of-line
# rxvt and konsole (i.e. the KDE-app...)
"\e[7~":beginning-of-line
"\e[8~":end-of-line

추가 보너스로 그들은 Home또한 End작동 하고 작동합니다.


2

http://web.archive.org/web/20120621035133/http://www.ibb.net/~anne/keyboard/keyboard.html 에있는 대부분의 정보 가 실제로 필요한 것입니다. 정보에 대한 한 가지 수정은 (XTerm에 대한) 제안입니다.

*VT100.Translations: #override \
          <Key>BackSpace: string(0x7F)\n\
          <Key>Delete:    string("\033[3~")\n\
          <Key>Home:      string("\033[1~")\n\
          <Key>End:       string("\033[4~")
*ttyModes: erase ^? 

이 오른쪽 문자와 같은 백 스페이스를 가지고 변화의 stty를 보내 텀을 얻을 것이다 있지만 ^?, 여전히 erroniously보고한다 ^H: 즉, 백 스페이스에서 빔 instert 모드를 깨고, 어떤 경우에 따라 백 스페이스로 (여기 참조 https://bugs.gentoo.org / 154090 ). 이를 피하려면 VT100.backarrowKey: false대신 사용하십시오 .

*VT100.backarrowKey: false
*VT100.Translations: #override \
          <Key>Delete:    string("\033[3~")\n\
          <Key>Home:      string("\033[1~")\n\
          <Key>End:       string("\033[4~")
*ttyModes: erase ^? 

([여기에 링크를 삽입하십시오] 참조)


댓글 을 작성하는 방법을 이해하려면 "댓글을 달려면 왜 50 개의 평판이 필요한지"를 읽어보십시오 .
Pimp Juice IT

나는 누구에게도 설명을 요구하지 않았다. 오히려 위의 답변에 대한 설명과 사소한 수정을 제공했습니다. 그러나 이것이 답변에 문서화되어 있다면 그렇게하십시오. 나는 주변 텍스트를 추가하여 전체 답변을 얻었습니다.
amosonn

또한이 링크가 내 답변에서 누락되었지만 거기에 추가 할 수 없습니다. wiki.archlinux.org/index.php/Xterm#Fix_the_backspace_key
amosonn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.