콘솔에서 CTRL + 화살표 키를 사용하여 다음 또는 이전 단어로 어떻게 이동합니까?


12

터미널 에뮬레이션 응용 프로그램에서 CTRL+ Left/ Right화살표를 누르면 한 단어에서 이전 또는 다음 단어로 이동합니다. 텍스트 또는 프레임 버퍼 모드에 관계없이 Linux 콘솔에서 동일한 기능을 수행 할 수 있습니까?

내 구성에서 CTRL+ 화살표 키는 이스케이프 문자 시퀀스로 변환되어 해석되지 않습니다.

답변:


8

이것은 터미널이 Ctrl+ Leftvs에 대해 다른 이스케이프 시퀀스를 보내는 경우에만 가능합니다 Left. Linux 콘솔 (적어도 내 컴퓨터)에서는 기본적으로 그렇지 않습니다. 키맵을 수정하여 만들 수 있습니다. 수정해야 할 정확한 파일은 배포판에 따라 다를 수 있습니다. 데비안 lenny에서 수정할 파일은 /etc/console/boottime.kmap.gz입니다. 당신은 같은 줄이 필요합니다

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

X 터미널 에뮬레이터와 동일한 이스케이프 시퀀스를 선택할 수도 있습니다. 제어 순서가 무엇인지 알아 보려면 쉘에 Ctrl+ V Ctrl+ Left를 입력하십시오 . 이스케이프 문자가있는 ^[O5D곳 (내 컴퓨터에서)을 삽입 ^[합니다. 키맵 파일에서 \033이스케이프 문자를 나타냅니다.

이스케이프 시퀀스를 디코딩하도록 터미널에서 애플리케이션을 구성하는 것은 별도의 문제입니다.


당신은 단지 당신이 가지고 방법을 설명하는 "\033O5D"코드를,하지만 당신은 어디서 얻었 완전히 생략 keycode 105F100에서 코드를. 게다가, 난 얻을 ^[[1;5B^[[1;5ACtrl + 아래로 Ctrl 키 + 위쪽합니다. 부품을 어떻게 처리해야 1;합니까?
Martin Vegter

1
@MartinVegter 기존 파일에서 키 코드를 확인하거나 showkey프로그램을 사용하십시오 . 1;: 부분은 나머지 다르지 않다 "\033[1;5B"등등.
Gilles 'SO- 악의를 멈춰라'

확인을 keycode 105사용하여 찾을 수 있습니다 showkey. 그러나 어디서 얻었 F100습니까?
Martin Vegter

@MartinVegter 아직 사용하지 않는 것을 선택하십시오. 키 코드마다 다른 것 (방금 오타를 고쳤습니다).
Gilles 'SO- 악의를 멈춰라'

24

이맥스 스타일 단축키 Alt+ f, Alt+ b는 기본적으로 쉘과 같은 모든 readline 기반 명령 줄 프로그램에서 작동합니다.


2

vim을 명령 행 편집기로 설정 한 다음 ESC를 누르고 vim 스타일 (앞으로, 뒤로, 끝, $, 0 등)을 건너 뛸 수 있습니다.


-1

~/.inputrc파일로 데비안 에서이 문제가 발생했습니다 . 이 파일을 제거하여 문제를 해결했습니다.

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