iTerm2의 일부 기본 키 조합을 다시 매핑하려고하는데 “16 진수 코드 보내기”에 키를 바인딩 할 때 무슨 일이 일어나고 있는지 이해하고 싶습니다.
이전 게시물에서는 ctrl-a 및 ctrl-e 키 콤보를 각각 cmd-left 및 cmd-right로 다시 매핑하는 데 도움이되었지만 다른 키 콤보도 다시 매핑하고 싶습니다. ( 이전 Stackoverflow 게시물에 링크 ).
16 진수 코드가 포함되어 있다는 것을 모호하게 이해하고 있지만 다음에 어디에서 무엇이 진행되고 있는지, 무엇을 해야하는지 이해할 수없는 시점에 있습니다.
답변
이 16 진 코드는 일련의 바이트입니다. 예를 들어, 키 조합을 매핑하여 0x66 0x6f 0x6f
삽입 foo
합니다. 0xc3 0xa4
UTF-8을 사용하면 ä를 삽입합니다. 0x1b 0x1b 0x5b 0x43
의미 escape escape [ C
합니다.
ANSI 이스케이프 시퀀스 와 같은 일부 바이트 시퀀스 와 ASCII 제어 문자와 같은 단일 바이트도 터미널에서 특별한 의미를 갖습니다.
⌘ ← 및 ⌘ →를 줄의 시작과 끝으로 이동하려면 0x01 (^ 캐럿 표기법으로 ^ A) 및 0x05 (캐럿 표기법으로 ^ E)를 지정할 수 있습니다.
- ⌘ ← : 16 진수 코드 보내기 : 0x01
- ⌘ → : 16 진수 코드 보내기 : 0x05
다음에 할당하여 단어를 앞으로 삭제하도록 만들 수 있습니다 \ed
.
- ⌥⌦ : 보내기 ^ [d
변경 ⌥ ← 및 ⌥ →를 \eb
하고 \ef
도되지 지원의 readline 또는 이맥스 스타일의 키 바인딩을 프로그램을 변경할 것입니다하여 ITerm의 환경 설정이다. 또 다른 옵션은 이것을 ~ / .inputrc 에 추가하는 것입니다 .
"\e\e[D": backward-word
"\e\e[C": forward-word
read
키 조합을 실행 하고 눌러서 어떤 문자가 삽입되는지 확인할 수 있습니다. 예를 들어 ^[^[[D
, 기본적으로 ⌥ ←는 삽입 ^[
이며 캐럿 표기법으로 이스케이프 됩니다 .
http://code.google.com/p/iterm2/wiki/Keybindings 도 참조 하십시오 .
답변
Many Tricks의 키 코드 ($ 0) 를 설치 하고 자신에게 맞는 지름길을 찾으십시오.
예를 들어, Ctrl-D ( ⌃D
) 문자를 삭제하는 (앞으로) 기본 바로 가기를 앞으로 삭제 키 ( ⌦
) 를 누르는 것만 큼 간단하게 다시 매핑하려면 다음을 수행하십시오.
-
앱을 열고
Ctrl-D
-
iTerm 2로 돌아가서 iTerm> 환경 설정> 키에서 유니 코드 단축키를 추가하십시오.
참고 : 복사하여 붙여 넣지 말고 공백없이 유니 코드를 입력하십시오.
답변
내가 찾은 가장 좋은 방법은 @pattulus에서 설명하거나 vim 키 바인딩을 사용하여 키 코드를 보내는 것입니다.
키 코드에 대한 참고 사항 : 실제로 위에서 설명한대로 유니 코드 문자열을 보내서 작동시키지 못하게하려면 Control+ D와 함께 코드를 보내야 할 경우 수정 자와 키를 모두 보내야 합니다. 제어 키 수정자는 0x840101 0x4
어디에 키 코드0x840101
를 통해 얻을 수 있습니다 .
vim 순서로 전송에 대한 참고 사항 : iTerm2 문서에 설명 된대로 , + \<C-d>
보내기 와 같은 vim- 바인딩 형식으로 키 코드를 보낼 수 있습니다 ( 중요).ControlD\
개인적으로 vim 키 바인딩은 더 읽기 쉽고 나중에 수행 한 작업을 이해하기 때문에 vim 키 바인딩을 선호합니다.