iterm2에서 키 재 맵핑 진수 코드 보내기”에

iTerm2의 일부 기본 키 조합을 다시 매핑하려고하는데 “16 진수 코드 보내기”에 키를 바인딩 할 때 무슨 일이 일어나고 있는지 이해하고 싶습니다.

이전 게시물에서는 ctrl-a 및 ctrl-e 키 콤보를 각각 cmd-left 및 cmd-right로 다시 매핑하는 데 도움이되었지만 다른 키 콤보도 다시 매핑하고 싶습니다. ( 이전 Stackoverflow 게시물에 링크 ).

16 진수 코드가 포함되어 있다는 것을 모호하게 이해하고 있지만 다음에 어디에서 무엇이 진행되고 있는지, 무엇을 해야하는지 이해할 수없는 시점에 있습니다.



답변

이 16 진 코드는 일련의 바이트입니다. 예를 들어, 키 조합을 매핑하여 0x66 0x6f 0x6f삽입 foo합니다. 0xc3 0xa4UTF-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) 문자를 삭제하는 (앞으로) 기본 바로 가기를 앞으로 삭제 키 ( ) 를 누르는 것만 큼 간단하게 다시 매핑하려면 다음을 수행하십시오.

  1. 앱을 열고 Ctrl-D

    키 코드 예

  2. iTerm 2로 돌아가서 iTerm> 환경 설정> 키에서 유니 코드 단축키를 추가하십시오.

    iTerm 16 진수 코드 보내기

참고 : 복사하여 붙여 넣지 말고 공백없이 유니 코드를 입력하십시오.


답변

내가 찾은 가장 좋은 방법은 @pattulus에서 설명하거나 vim 키 바인딩을 사용하여 키 코드를 보내는 것입니다.

키 코드에 대한 참고 사항 : 실제로 위에서 설명한대로 유니 코드 문자열을 보내서 작동시키지 못하게하려면 Control+ D와 함께 코드를 보내야 할 경우 수정 자와 키를 모두 보내야 합니다. 제어 키 수정자는 0x840101 0x4어디에 키 코드0x840101 를 통해 얻을 수 있습니다 .

vim 순서로 전송에 대한 참고 사항 : iTerm2 문서에 설명 된대로 , + \<C-d>보내기 와 같은 vim- 바인딩 형식으로 키 코드를 보낼 수 있습니다 ( 중요).ControlD\

개인적으로 vim 키 바인딩은 더 읽기 쉽고 나중에 수행 한 작업을 이해하기 때문에 vim 키 바인딩을 선호합니다.


답변

Karabiner를 확인하십시오 .

이 도구 내에서 응용 프로그램과 관련된 주요 사용자 지정 매핑을 만들 수 있습니다. 이를 돕기 위해 몇 가지 도구가 제공됩니다.


답변