2016-08-18 5 views
1

iTerm에서 역방향 검색 기록 (Ctrl + R) 명령을 다른 명령 조합으로 매핑하려고하는데 어떻게해야할까요? 어떤 도움을 주시면 감사하겠습니다.iTerm에서 다른 키 조합으로 역방향 검색 (Ctrl + R) 키 누르는 방법

+1

iTerm과 아무런 관련이 없습니다. 이것은 터미널 에뮬레이터와는 별도로 'bash'에 의해 수행됩니다. 'readline' 설정에 대한 bash 문서를 읽어보십시오 : https://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands – Barmar

+0

iTerm이이 키를 매핑 할 수없는 이유는 무엇입니까? 조합은 다른 명령과 같은 방식으로 작동합니까? – user1686342

+0

명령은 iTerm에 의해 처음부터 바인딩되지 않고, 'bash'와'zsh'에 의해 묶여 있습니다. 'xterm','gnome-Terminal' 등으로 동일한 바인딩을 얻습니다. 그렇죠? – Barmar

답변

2

readline을 언급 한 사람이 맞습니다.

bind 명령 (시도 help bind)을 사용하여 바인딩을 편집 할 수 있습니다. 이 특정 질문에 대한

은의 제어-R을 수 밖에 무슨 보자 :

$ bind -P |grep C-r 
re-read-init-file can be found on "\C-x\C-r". 
reverse-search-history can be found on "\C-r". 
revert-line can be found on "\M-\C-r". 

좋아. 그 중 하나는 Control-R을 의미하는 \C-r입니다. 하자 다시 확인 :

$ bind -q reverse-search-history 
reverse-search-history can be invoked via "\C-r". 

man readline 포함은 :

reverse-search-history (C-r) Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

바로 보이는 그. 어떻게 바꿀 수 있습니까? 대신 ⌘-B를 사용한다고 가정 해 봅시다. readline-speak의 Meta-b (일명 \M-b)입니다.

의 그것을 밖으로 시도하자

$ bind '\M-b:reverse-search-history' 
$ bind -q reverse-search-history 
reverse-search-history can be invoked via "\C-r", "\M-b". 

가 ⌘-B를 누르면 지금 바로 제어-R과 같은 역 검색을 트리거합니다. Control-R은 여전히 ​​묶여 있습니다. 다음을 수정할 수 있습니다 :

$ bind -r '\C-r' 
$ bind -q reverse-search-history 
reverse-search-history can be invoked via "\M-b". 

이 변경 사항은 현재 쉘 세션에 적용되지만 다음에 쉘을 호출 할 때 사라집니다. 변화가 지속하려면 다음을 수행하십시오

$ echo '"\M-b": reverse-search-history' >> ~/.inputrc 

지금 ~/.inputrc 원하는 바인딩이 포함되어 있습니다. readline 구성 (셸 포함)에이 프로그램을 사용하는 프로그램은 이제 지정한 바인딩을 사용합니다.

+0

예외적 인 응답. 감사합니다 – user1686342

+0

문제는 없습니다. 나는 stackoverflow가 존재하기 전에 이것을 알아 내야 만했다. 나는 이것이 얼마나 실망 스러울지를 안다. – Eric