PuTTY 및 화면에서 Ctrl 화살표 키 사용


33

나는 어디에서나 이것에 대한 해결책을 찾지 못했습니다. Windows에서 PuTTY를 사용하여 bash 및 screen을 실행하는 다양한 서버에 연결하고 있습니다. bash는 Ctrl 키를 사용하여 명령 줄에서 단어를 단어 단위로 건너 뛰는 것이 좋지만 화면 내에서는 작동하지 않습니다. 화면에 없으면 ctrl-left는 "^ [OC를 보내고 ctrl-right는"^ [OD "입니다. 화면에서 대신"^ [[C "및"^ [[D ")를 얻습니다. 왼쪽 / 오른쪽 화살표 키 PuTTY를 사용할 때 Ctrl- 화살표 키를 인식하는 화면이 표시되는 방법이 있습니까?

업데이트 : PuTTY는 이것이 작동하는 데 필요한 이스케이프 코드를 보내지 않으므로 문제입니다. 나는 지금 포기하고 Cygwin + mintty를 사용하고 있습니다.


와우, 민트는 훌륭합니다-지금 당분간 Windows 용 알맞은 터미널 에뮬레이터를 찾고 있습니다. 고마워
blueyed

답변:


13

편집하다:

나를 위해 일한 것은 다음과 같습니다.

  • ~/.bashrc세트 TERM=xterm(광산이 TERM=xterm-256colors)가 화면을 재정의합니다.TERM=screen
  • 내가 설정 퍼티> 터미널> 기능> 비활성화 응용 프로그램 커서 키 모드확인
  • tput smkx배쉬 프롬프트에 들어갑니다
  • 이제 Ctrl- 화살표 키가 한 단어 씩 이동합니다.

  • 내가 할 경우 정보를 제공 할 목적으로, :
    tput smkx | hexdump -c
    내가 얻을
    0000000 033 [ ? 1 h 033 =

    tput rmkx | hexdump -c
    나를 제공
    0000000 033 [ ? 1 l 033 >

나는 이것을 조금 더 나은 것으로 재 작업 할 수있는 방법이 있다고 생각하지만, 지금까지 내가 얻은 것이므로 효과가있는 것 같습니다.

원래 답변 :

보낸 사람 info screen:

`스크린 '세션의 각 창은 VT100 터미널을 에뮬레이트하며 일부 추가 기능이 추가되었습니다. VT100 에뮬레이터는 하드 코딩되어 있으며 다른 터미널 유형은 에뮬레이션 할 수 없습니다.

그리고 VT100에는 Ctrl- 화살표 키 코드가 없습니다.


set -o vi(당신이 그런 종류의 사람이라면 :)
MikeyB

1
@ MikeyB : 그게 어떻게 도움이됩니까?
추후 공지가있을 때까지 일시 중지되었습니다.

감사. 내가 원했던 대답은 아니지만 지금은이 제한으로 나아가거나 다른 키 바인딩을 사용할 수 있습니다.
kbosak

1
@ 데니스 : 글쎄, 그것은 당신이 머리를 감쌀 수있는 사람의 오타가 있다면 앞으로 / 뒤로 처리하는 또 다른 방법을 제공합니다. set -o vivi 명령 행 모드를 ESC켜서 vi 키를 치고 사용하여 명령 행을 이동하고 편집 할 수 있습니다.
MikeyB

1
@ kbosak : 나는 그 대답에 만족하지 않습니다. 그래서 나는 그것을 고쳤다 . :-)
추후 공지가있을 때까지 일시 중지되었습니다.

23

here 에서 언급했듯이 u는 ~ / .inputrc에 넣을 수 있습니다.

"\eOD": backward-word
"\eOC": forward-word

그것은 나를 위해 일했다.


5
이것은 나를 위해 일했으며 받아 들인 대답보다 훨씬 쉽습니다.
Petrus Theron

허용 대답하지 않았다 동안이 너무 나를 위해 일한
Schiavini

그냥 작동하는 +1 간결한 답변.
Adam Caviness

3
파일 $include /etc/inputrc맨 위에 있어야 .inputrc합니다. 그렇지 않으면 readline이 시스템 전체 바인딩을 읽지 않으며 Home 및 End와 같은 키가 손상됩니다.
James

1
이것이 정답입니다!
Shailen

4

화면을 사용하지 않아도 Putty가 ctrl-arrowkeys를 올바르게 보내 게 된 것은 다소 놀랐습니다. 내 솔루션은 alt-arrowkeys (meta-arrowkeys)를 사용하는 것으로 전환했습니다.

bindkey "^ [^ [[C"정방향 단어 # Meta-RightArrow
bindkey "^ [^ [[D"뒤로 단어 # Meta-LeftArrow

나는이 길을 갈 수도 있습니다. 왼쪽 Ctrl 키는 메타 키나 Alt 키 (적어도 내 키보드)보다 누르기가 훨씬 쉽습니다. 오 잘
kbosak

4

다른 사람들이 내가했던 것처럼이 오래된 질문을 발견하면 더 최근의 해결책 :

퍼티에서는 Ctrl 및 화살표 키가 작동하지 않습니다! 어떻게해야합니까?

putty는 ctrlux에서 커서 키 모드의 의미를 반전시킵니다. 이것은 tmux가 제대로 감지하기가 약간 어렵습니다. Ctrl 키를 올바르게 얻으려면 kinfo5 (Ctrl-Up 등)가 조정 된 버전이되도록 terminfo 설정을 변경하고 tmux가 모드를 변경하지 않도록 smkx / rmkx를 비활성화하십시오. 예를 들어 .tmux.conf에서이 줄을 사용하면 TERM이 xterm으로 설정되어 있다고 가정합니다.

set -g 터미널 무시 "xterm * : kLFT5 = \ eOD : kRIT5 = \ eOC : kUP5 = \ eOA : kDN5 = \ eOB : smkx @ : rmkx @"

이것은 tmux 1.2 이상에서만 작동합니다.

http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ


0

제대로 디버그 / 구성하려면 terminfo, ncurses, screen 및 putty의 문서를 살펴보십시오. 또한 bash 단축키는 inputrc로 구성 할 수 있습니다. bash의 매뉴얼 페이지를보고 inputrc를 검색하십시오.


나는 그 조사가 inputrc에 있다고 생각하지 않습니다. 나는 이미 성공적으로 inputrc에 항목을 넣는 것과 관련된 몇 가지 가능한 솔루션을 시도했습니다. 다시, Ctrl- 화살표 키의 화면으로 잘못된 코드가 전송되고있는 것 같습니다. 또한 실제로는 약간의 불편 함이 있기 때문에 이미 가지고있는 것보다 더 많은 시간을 보내고 싶지 않습니다.
kbosak

0

퍼티에 올바른 문자 인코딩이 있습니까? UTF-8로 서버에 연결하고 퍼티가 표준 문자 세트 인 vim 인 경우 화살표 키가 작성됩니다. 퍼티가 UTF-8 인 경우 커서를 이동할 수 있습니다. 아마도 귀하의 경우에는 동일 할 것입니다 ...


그것은 vi / vim 문제가 아니며 PuTTY에서 문자 세트에 대한 하나의 옵션 만 보았지만 도움이되지 않았습니다.
kbosak

터미널-> 키보드-> 기능 키 및 키패드에서 다른 옵션을 사용해보십시오. BTW, 나를 위해 Ctrl-Arrow는 bash에서도 작동하지 않으며 Ctrl 키를 누르지 않는 것과 동일합니다.
교수 Moriarty

네, 운없이 많은 옵션과 옵션 조합을 시도했습니다. 참고로 bash의 ctrl-arrow 키를 돕기 위해 inputrc에 넣을 수있는 항목이 있지만 화면을 사용할 때 도움이되지 않습니다.
kbosak

0

터미널-> 기능 아래의 퍼티 구성에는 몇 가지 "비활성화"확인란이 있습니다. 응용 프로그램 커서 키 또는 응용 프로그램 키패드 모드를 비활성화하려고 할 수 있습니다. 때로는 퍼티가 "너무 똑똑해"서버와 호환되지 않는 제어 문자를 보냅니다.


0

터미널> 키보드> 기능 키> Xterm R6을 사용하고 있는데 이는 예상대로 작동하는 기능 키 (f4 검색 등)를 도와줍니다.

내가 찾은 것은 CTRL + 화살표를 사용하는 대신 ALT + 화살표가 단어를 대신 이동한다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.