터미널 에뮬레이터에서 단어를 건너 뛰는 Alt- 왼쪽이 작동하지 않음


16

이전 작업의 데비안 Wheezy 시스템에서 Alt + Left 및 Alt + Right를 사용하여 활성 명령 줄의 단어 사이를 건너 뛰었습니다 (bash).

그러나 집에서 이후이 더 이상 작동하지 않습니다 (지점을 테스트 데비안 8.0) 제시로 업그레이드 한 : 대신 이전 단어로 건너 뛰기의 Alt 키 왼쪽과 같은 인쇄 D또는 [D. OTOH, ssh를 열고 헤드리스 데비안 Weezy에 연결하면 완벽하게 작동합니다.

또한 새 직장에 Fedora 20을 방금 설치했는데 동작은 동일합니다. 이것은 bash, csh 및 ksh (아래에서 시작 env -i)와 rxvt-unicode 및 xfce4 터미널에 적용되므로 이러한 수준을 벗어난 것이어야합니다.

스택의 다른 곳에서 차이점을 찾아야합니까?


4
나는 더 보편적이며 alt-b와 alt-f (나머지 readline 키)를 시도하는 것이 좋습니다. 많은 명령 행 프로그램이 readline 바인딩을 존중합니다.
demure

답변:


21

업그레이드시 손실 된 로컬 ~/.inputrc또는 글로벌 /etc/inputrc파일이 정의되었을 수 있습니다. 쉬운 수정은 ~/.inputrc다음 줄로 파일 을 작성하는 것입니다 .

## enable Alt-arrows 
"\e[1;3D": backward-word ### Alt left
"\e[1;3C": forward-word ### Alt right

와 그 작동합니다 xtermterminatorgnome-terminal하지만 힘의 필요성이 다른 단말기에 대한 불통 될 수 있습니다. 불행히도, 각 터미널 에뮬레이터는 다른 구문을 사용할 수 있습니다. 자세한 내용은 여기 내 답변을 참조 하십시오 .


나는 실제로 Alt를 의미했으며 여전히 원격 시스템에서 작동합니다. Ctrl + 왼쪽 / 오른쪽은 Rxvt에서 이미 탭을 왼쪽과 오른쪽으로 이동하기 위해 사용됩니다 (Shift + 왼쪽 / 오른쪽 탭 전환 및 Shift + 아래쪽으로 새 탭 열기).
Alois Mahdal

1
그런데 Ctrl + 왼쪽 / 오른쪽은 GUI 편집기에서 일반적이지만 터미널은 아직 그 조합을 보지 못한 세계와 완전히 다릅니다.
Alois Mahdal

10

terdon은 올바른 방향으로 입력했습니다 : inputrc 파일.

범인은 직관적이지 않은 readline6이 실제로 / etc / inputrc 대신 ~ / .inputrc를 사용한다는 점 입니다. readline (3) 은 강조하거나 반박하지 않습니다.

이 파일의 이름은 INPUTRC 환경 변수의 값에서 가져옵니다. 해당 변수가 설정되어 있지 않으면 기본값은 ~ / .inputrc입니다. 해당 파일이 없거나 읽을 수없는 경우 최종 기본값은 / etc / inputrc입니다.

따라서 두 데비안 머신에서 / etc / inputrc는 libreadline6 패키지 가 제공하는 것과 동일하지만 (버전도 동일) 최신 머신에는 ~ / .inputrc가 한 줄로 존재합니다 : set bell-style none. 이 파일을 삭제하면 모두 정상적으로 작동합니다 (아래 참고 참조).

내일까지 Fedora를 확인할 수 없지만 같은 문제인 것 같습니다. 업데이트 : Fedora에서 ~ / .inputrc가 존재하지 않습니다. 여기서 / etc / inputrc는 단순히 다르므로이를 정의하지 못할 수 있습니다. 핫픽스로 간단히 데비안의 inputrc를 ~ / .inputrc로 저장했습니다.


노트:

7> 8 업그레이드 중에 어떻게 변경되었는지에 대한 미스터리는 여전히 해결되지 않았지만 부분적으로 내 기억력과 의도하지 않은 일부 도트 파일의 저글링으로 설명 할 수 있습니다. (BTW는 APT 업그레이드가 아니라 재설치 및 수동 도트 파일 이동이므로 ~ .inputrc가 어떻게 든 방해가되었을 수 있습니다.)

또한 OK라고 말하면 Rxvt를 제외한 모든 곳에서 Ctrl과 함께 작동한다는 것을 의미합니다 (OK, xfce4 터미널 만 검사했지만 Rxvt가 일반적인 반역자임을 알았습니다). 특정 기능-목록에서 활성 탭을 이동합니다.

맨 페이지에서 언급했듯이 bash를 사용하면 내장 바인드 명령을 사용하여 현재 가지고있는 것을 조사 할 수 있습니다.


캐치 +1 실제로 생각보다 직관적입니다. 기본 동작은 사용자 별 도트 파일이 시스템 전체 기본값보다 우선합니다. 그렇지 않으면 사용자가 설정을 변경할 수 없습니다.
terdon

Alt + 화살표를 구체적으로 활성화하는 방법은 업데이트 된 답변을 참조하십시오.
terdon

2
이것은 정상입니다, 당신 이 그것을 읽고 싶다면 $include /etc/inputrc상단에 필요 ~/.inputrc합니다.
Chris Down

@terdon 시스템 전체보다 먼저 사용자 설정을 선호하는 것이 완벽하지만, 직관적으로 ~ / .initrc는 / etc / initrc에 "병합"됩니다 (즉, / etc / initrc는 $included가됩니다) 기본적으로).
Alois Mahdal

1
1. 하드 코딩 된 옵션, 2. / etc / initrc, 3. ~ / .initrc --vs-- 1. 하드 코딩 된 옵션 2. / etc / initrc 또는 ~ / .initrc. 첫 번째 방법은 하위 레벨로 쉽게 확장 할 수 있기 때문에 훨씬 유연합니다 (예 : 프로젝트 당,이 예제는 readline으로 이해가되지 않지만 포인트를 얻습니다).
Alois Mahdal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.