.inputrc를 어떻게 다시로드합니까?


98

배경

readline 모듈이 읽는 중이라고 들었는데 이것이 ~/.inputrcbash와 같은 프로그램에서 키 입력 동작을 변경하는 방법입니다.

질문

터미널 프로그램을 다시 시작하지 않고 변경된 동작을 확인하기 위해 편집 후 이것을 다시로드하려면 어떻게해야합니까?


8
배경 (잘못되지 않음) .
Dennis Williamson

3
명령으로 .inputrc를로드하는 방법을 찾고 여기에 왔습니다. superuser.com/q/419670/56544
dfrankow

1
@CaptainLepton 나는 그것을 보았다. 터미널은 쉘과 다릅니다. exec bashBash 세션을 수행하면 현재 셸 세션이 새로운 Bash 세션으로 바뀝니다. xterm터미널입니다.
Kusalananda

1
@Kusalananda 설명해 주셔서 감사합니다. 좋은 생각이야. 이전 실행 파일을 교체 할 때 bash를 다시 시작하지 않고 현재 터미널에서 running> exec bash를 실행하는 것으로 설명 하시겠습니까?
캡틴 렙턴

1
예, 현재 셸 세션을 "다시 시작"할 방법이 없습니다. 이것이 한 가지 방법입니다. @maxelost가 준 솔루션을 사용하는 것도 또 다른 방법입니다.
Kusalananda 2016 년

답변:


82

기본적으로 C-x C-r에 바인딩되어 re-read-init-file있습니다.

설명은 Bash Reference Manual참조 하십시오 .


4
이것은 나를 위해 작동하지 않습니다. .inputrc 파일에서 다른 매핑을 시도했지만 운이 없습니다 : "\ eX \ eR": re-read-init-file 어떤 제안이 있습니까?
캡틴 렙턴

6
@Captain 실제로 그 동안 삭제 된 키 입력을 지우지 않는 것을 제외하고는 실제로 수행 됩니다. 예를 들어 일부를 추가하면로드됩니다. 이것에 대한 유일한 해결책 bash -l은 새로 초기화 된 새로운 (로그인 쉘처럼 동작하는 쉘)입니다.
Daniel Beck

나는 편집하고 /etc/inputrc있었지만 거의 비어있어서 사용 ~/.inputrc하지 못하게되었습니다 /etc/. 제거하면 변경 사항 ~/.inputrc을 읽고 /etc/inputrc활성화했습니다.
Malvineous

1
@Malvineous 나는 전에 그것에 의해 잡혔다 .. 당신 $include /etc/inputrc이 상단에 추가 ~/.inputrc하면이 문제를 피할 수 있습니다.
mwfearnley

53

을 사용하여 명령 줄에서 새 항목을 다시로드 할 수도 있습니다 bind -f ~/.inputrc. .inputrc에 항목이로드됩니다. "재로드"가 아닌로드 만 수행하므로 .inputrc에서 제거 된 행은 재설정되지 않습니다.

깨끗한 슬레이트에서 빠르게 테스트하려면 bash새 중첩 쉘 내부에서 작업 한 다음 새 터미널을 시작하십시오.


내가 틀렸다면 수정하십시오 bind -f. 파일 이름이 아닌 파일 이름 만 허용하므로 bind -f <(echo 'one line with ~/.inputrc syntax')(또는 사소하게 bind -f <(cat ~/.inputrc)) 와 같이 작동하지 않습니다. 이것은 약간 성가시다. 이 점에서 내가 무엇을 할 수 있는지 아십니까?
Enrico Maria De Angelis


10

.inputrc에서 먼저 바인딩을 선택하고 re-read-init-file함수를 바인딩 한 후 :

set editing-mode vi
"\C-x\C-r": re-read-init-file

보도 CTRL하고 x, 자료를 모두 눌러 CTRLr.

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