배쉬, ^ 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.