iTerm이 다른 OS와 같은 방식으로 '메타 키'를 번역하도록 만들기


179

emacs 키 바인딩이있는 bash 쉘에서 Mf, Mb와 같은 키 조합을 사용하여 쉘 프롬프트에서 각각 한 단어를 앞뒤로 이동할 수 있습니다. 일반적으로 메타 키는 Windows 및 Linux에서 Alt 키에 매핑됩니다. 그러나 iTerm에서는이 메타 키를 MacBook Pro의 Option 또는 Command 키에 매핑하는 방법을 찾지 못했습니다.

OS X에서 메타 키는 기본적으로 ESC 키에 매핑 된 것으로 보입니다. 따라서 iTerm에서 ESC-f, ESC-b를 사용할 수 있습니다. 그러나 ESC 키는 사용하기에 실용적이지 않습니다. 또한 iTerm에는 메타 키 (책갈피> 프로파일> 키보드 프로파일> 글로벌> 옵션 키 ...)에 대한 수정 자 매핑을 허용하는 옵션이있어이 설정이 전혀 작동하지 않는 것 같습니다.

따라서 누군가이 문제의 해결책을 알고 있다면 알려주십시오.

최신 릴리스 0.9.6.1012로 업그레이드했으며이 동작은 계속 유지됩니다.

편집 : 내 질문에 대한 설명. 내가 말하는 키 바인딩은 emacs가 아닌 bash 쉘을위한 것입니다. 기본적으로 bash 쉘은 emacs와 동일한 키 바인딩을 사용합니다.


잠시 동안이 문제를 겪고 나서 해결책을 찾을 수 없습니다. 나는 지금 포기하고 터미널로 전환했다.
ejel

2
iterm2가 이미 존재하고 모든 것이 정상이라는 것을 잊지 마십시오. =)
holms

답변:


207

Cmd+., Profiles, Keys를 선택합니다 Left option Key acts as: +Esc.

emacs에서 저에게 효과적이지만 다른 바람직하지 않은 영향이 있는지 확실하지 않습니다.


나는 모든 선택과 함께 Option Key를 시도했지만 bash 쉘에서 나를 위해 작동하지 않습니다. "?"만 표시됩니다. 메타 키 조합을 누를 때마다
ejel

2
+ ESC 옵션이 작동하려면 입력 언어가 미국이어야합니다. + ESC는 일본어 / 로마 지 입력 방법을 선택했을 때 작동하지 않았지만 입력 언어를 미국으로 전환하면 작동하기 시작했습니다.
Dominic Cooney

2
환경 설정, 프로필, 키를 선택하고 왼쪽 옵션을 선택하십시오. 키는 + Esc와 같이 작동합니다. 그런 다음 왼쪽 옵션 키와 Esc 키를 메타 키로 사용합니다. 그것이 제 경우에 일어난 일입니다.
cgl

iTerm 2에서는 이것이 권장되는 옵션 인 것 같습니다.
ejel

4
내 외부 키보드의 경우 왼쪽 및 오른쪽 옵션 키를 모두 사용하도록 설정해야했습니다. 왼쪽 옵션 키를 사용 Esc+하더라도 여전히 이상한 문자를 인쇄합니다. Mac 키보드 설정 의 키보드 수정 자 옵션을 사용하여 키를 변경 하기 때문에 발생할 수 있습니다 .
grego

130

책갈피> 프로파일 관리로 이동 하십시오 . 그런 다음 키보드 프로파일> 전역 을 선택하고 옵션 키를 메타로 선택하십시오 . 이것은 0.9.6.1201 버전에서 작동합니다.


2
전역이 아닌 xterm (OS X) 항목을 변경해야했지만 지금 작동하고 있습니다.
Jason Axelson

내 컴퓨터에서 0.9.6.1201 및 몇 가지 다른 빌드에서 설정이 깨진 이유를 모르겠습니다. 그러나 최신 0.9.6 빌드 및 0.10에서는 작동합니다. 따라서 지금은 문제가되지 않습니다.
ejel

11
iTerm2 에서는 + 와 + 에 대한 프로파일 바로 가기 키 를 각각 이스케이프 시퀀스 + / 보내기로 다시 정의한 후에 만 ​​작동했습니다 . alt->alt<-fb
amirnissim

나는 그것을 시작하기 위해 새로운 iterm 세션을 열어야했다
Skurpi

하여 ITerm에 대한 @SridharRatnakumar 작품도
르지 Wende

31

메뉴 막대 Iterm2 => 기본 설정 => 프로필에서 키 탭을 선택하고

왼쪽 Option 키는 + Esc로 작동

여기에 이미지 설명을 입력하십시오

irssi에서도 저를 위해 일했습니다.


우수, 이것은 또한 + TMUX iTerm2의 조합으로 작동
TheJavaGuy - 이반 밀로 사 벼빅


5

나는 iTerm2를 사용 하고 있으며, 이 대답 은 내 문제를 부분적으로 해결했습니다.

Cmd+ ,=> 프로필 => 를 선택하고 왼쪽 옵션을 선택하십시오. 키는 + Esc 와 같이 작동 합니다.

여기에 이미지 설명을 입력하십시오

그뿐만 아니라, 내가 가야했다에 Cmd+ ,=> 프로필 => 와의 키 매핑 목록을 모두 찾을 키 조합 들 : 여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오두 번을 클릭하고 다음에 자신의 바로 가기를 변경할 수 :

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

* 이스케이프 시퀀스 전송 작업 을 선택해야합니다 .


이것은 정말 도움이됩니다. 고마워요!
LeOn-Han Li

4

모든 좀비 부활을 여기로 가지만 후손을 위해

이 게시물 은 Mb와 Mf에서 원하는대로 작동합니다 .'Option Key as Meta '를 설정 한 상태에서 수정자를 희생하지 않도록하십시오 (개인적으로 메타를 사용하는 vim 매핑이 있습니다).

요약하면, Global Keyboard Profile (글로벌 키보드 프로필)에서 설정을 사용하여 두 가지 새로운 매핑을 추가합니다

  1. 헥스 코드 F 대 B (66)에 대한 62의 값과 같은 키 ( man ascii)
  2. 옵션 인 수정 자
  3. 송신 이스케이프 시퀀스로 동작, 값 b 또는 f

Terminal.app에서 여전히 그리워하는 유일한 Opt-Backspace단어는 단어로 삭제하는 것입니다. 이에 대한 다른 해결 방법이 있지만 사용하도록 훈련하려고합니다 Ctrl-w.


이 답변 이후 새로운 기능 일 수도 있지만,을 누를 Ctrl-w때 보낼 글로벌 키 바로 가기를 매핑 할 수 있습니다 Opt-Backspace.
Steve Buzonas 2012

4

iTerm2에서 더 쉽습니다. 환경 설정-> 책갈피-> 키보드로 이동하여 옵션 전송 + ESC를 선택하십시오. iTerm2에서는 왼쪽 및 오른쪽 옵션 키를 개별적으로 구성 할 수 있으므로 원하는 경우 둘 다 변경해야합니다. iTerm2 링크 : http://sites.google.com/site/iterm2home/


2

책갈피> 프로파일 관리로 이동하십시오. 그런 다음 키보드 프로파일> 전역을 선택하고 옵션 키를 + ESC로 선택하십시오.

iTerm 빌드 0.9.5.0611 및 빌드 0.9.6.20090415에서 작동


흠. 이 두 가지 버전으로도 내 컴퓨터에서 설정이 손상된 것 같습니다. 그러나 최신 0.9.6.20090928 및 0.10은 예상대로 작동합니다.
ejel

2

또한 stackoverflow에 대한 해결책을 찾았습니다. 키보드 프로파일로 이동하여 "Global"에서 "Option key as"+ ESC를 변경하십시오.

그것은 나를 위해 완벽하게 작동합니다 =) btw 일부 iterm 패치도 존재합니다 : http://www.emacswiki.org/emacs/EmacsForMacOS


0

"LANG = C 내보내기"를 시도하십시오. emacs 전문가는 아니지만 OS X의 emacs가 Option 키를 iTerm의 메타 키로 인식 할 수 있다는 것을 알았습니다.


0

나는 iTerm에 대해 모른다. 그러나 당신은 터미널에서 이것을 할 수있다. 지침은 여기에서 찾을 수 있습니다.

Mac OS X Leopard 키 바인딩의 이맥스


감사합니다. 터미널에서 그렇게 할 수 있다는 것을 알고 있습니다. iTerm에서 동일한 결과를 얻고 싶습니다. 그건 그렇고, 내가 찾고있는 것은 emacs가 아닌 bash 쉘의 키 바인딩입니다. bash 쉘도 emacs 키 바인딩을 사용합니다.
ejel

0

북마크> 프로필 관리> 키보드 프로필> Global / xterm> Option Key as + Esc. 이를 통해 Midnight Commander에서 Option + Enter를 사용할 수 있으며 현재 선택된 파일 / 디렉토리 이름이 명령 문자열에 표시됩니다. 메타로 옵션 키가 작동하지 않았습니다. 내 iTerm 빌드는 0.10입니다.

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