Mac OS X Leopard 키 바인딩의 Emacs


104

저는 Mac 사용자이고 Emacs를 배우기로 결정했습니다. 나는 한 읽기 손의 피로를 줄이고 정확성을 향상시킬 수 있음 CTRLCAPS LOCK키를 교환해야합니다. Leopard에서는 어떻게합니까?

또한 터미널에서 ESC메타를 호출하기 위해 키를 사용해야합니다 . 대신 메타를 호출하기 위해 alt / option 키를 얻는 방법이 있습니까?

업데이트 : 이제 컨트롤 키를 누르기가 훨씬 쉬워졌지만 메타 키도 내 MacBook 및 Apple Keyboard에서의 위치에 주목할만큼 자주 사용됩니다. 실제로 컨트롤 키를 누르는 것이 실제로 더 쉽기 때문에 메타 키 역할을하도록 컨트롤 키를 다시 매핑했습니다. 누구든지 더 나은 / 더 표준 솔루션을 가지고 있습니까?


4
그것은을위한로 이동하는 것이 좋습니다 apple.stackexchange.com
yetanothercoder

답변:


163

CTRL 및 Caps Lock 전환

  1. 시스템 환경 설정 으로 이동
  2. 입력 키보드 & 마우스 환경 설정 패널을
  3. 에서 키보드 탭을 클릭 수정 키 ...
  4. Caps LockControl에 대한 작업을 바꿉니다 .

대체 텍스트

ALT / OPTION을 META로 사용

  1. 메뉴 모음에서 터미널을 클릭 합니다.
  2. 환경 설정 ...을 클릭합니다 .
  3. 언더 설정 탭으로 이동 키보드
  4. 옵션을 메타 키로 사용 확인란을 선택합니다.

대체 텍스트

그게 다야! 당신은 Emacs 마스터가되기 위해 잘 가야합니다!


8
'메타 키로 옵션 사용'이 작동하지만 이로 인해 중괄호와 파이프 '[] {} |'를 입력 할 수 없습니다. 등 옵션 -7과 옵션에 있기 때문에 메타에 잘 매핑됩니다. 어떤 아이디어?
Martin Wickman

1
@wic : 그 캐릭터들은 그들 만의 키를 가지고 있지 않나요?
Kyle Cronin

1
여기 유럽에는 없습니다. 노르웨이어 키보드를 사용하면 alt- 8 및 9 및 alt + shift- 8 및 9에 매핑됩니다.
sverrejoh

3
코딩 할 때 레이아웃을 전환합니다. 그런 다음 그들은 자신이해야하는 것처럼 자신의 키를 얻습니다. 저는 스웨덴 사람이고 코딩하는 동안 네이티브 문자를 입력 할 필요가 없습니다.
Per Wiklander 2011

1
@hhh 설정은 키보드 단위이므로 외부 키보드에 대해 올바르게 설정했는지 확인하십시오. 당신은 변경하지만 일단 네, 그것은 OS X의 도처에서 작동합니다
카일 크로닌

47

참고로 다음은 텍스트 이동을위한 키 바인딩입니다.

+ - 이동 한 단어를 왼쪽
+ 오른쪽으로 한 단어 이동 -가
+ delete다시 삭제 한 단어 -
Shift+ + delete전달하실 삭제 한 단어 -을
+ -하는 한 단락 위로 이동
+ 한 단락 아래로 이동 -를
+ 현재 행 시작으로 이동 -
+ 끝으로 이동 - 현재 줄
Shift+ 위의 모든 항목을 적절한 양만큼 선택 확장

클릭 후 드래그-텍스트 선택
더블 클릭 후 드래그-텍스트 선택, 단어 끝으로 줄 바꿈
세 번 클릭 후 드래그-텍스트 선택, 단락 끝으로 줄 바꿈

Shift마우스 + 텍스트를 선택 - 선택 (연속)에 추가
+ 마우스로 텍스트를 선택 - 선택에 추가 (비 연속)
+ 드래그 - 사각형 영역을 선택 (비 연속)
+ + 드래그 - 선택에 사각형 영역을 추가
드래그 선택 - 이동 텍스트
+ 드래그 선택-텍스트 복사

Ctrl+ A- 움직임은 현재 단락의 시작
Ctrl+ B이동 한 문자를 왼쪽 -
Ctrl+ D앞으로 삭제 -
Ctrl+ E- 현재 단락의 끝으로 이동
Ctrl+ F올바른 문자를 이동 -
Ctrl+ H- 삭제
Ctrl+ K- 현재 단락의 삭제 나머지
Ctrl+ L현재에 센터 창 - 줄
Ctrl+ N-한 줄 아래로 이동
Ctrl+ O-커서 뒤에 새 줄 삽입
Ctrl+ P-한 줄 위로 이동
Ctrl+ T-두 개의 주변 문자 바꾸기 (바꾸기)
Ctrl+ V-끝으로 이동 한 다음 한 문자 왼쪽
Ctrl+ Y-이전에 삭제 한 텍스트 붙여 넣기Ctrl - K

+ 또는 + 에 추가 Option하여 한 번에 문자 대신 단어를 이동합니다.CtrlFCtrlB


또 다른 좋은 자원이 페이지입니다 hcs.harvard.edu/~jrus/Site/System%20Bindings.html
Gourneau

3
Ch는 bash와 Mac OS X Cocoa 텍스트 상자에서 삭제하지만 emacs에서는 도움이됩니다.
asmeurer

11

다른 대답은 매우 완전했지만 추가로 Caps Lock 키를 바꾸는 대신 두 번째 컨트롤 키로 설정했다고 언급했습니다.

또한 Mac OS X에있는 대부분의 텍스트 입력 필드는 이미 emacs 키 입력 (^ A 줄 시작, ^ E 줄 끝, ^ P, ^ N, ^ K, ^ Y 등)을 허용합니다.

행운을 빕니다


6
당신은 뭔가를 할 수 있습니다-내가 마지막으로 Caps Lock을 사용했을 때를 기억할 수 없습니다.
Kyle Cronin

11

Kyle Cronin이 제공 한 답변이 마음에 들지만 한 가지 추가하고 싶습니다.이 작업에 적합한 키보드를 선택했는지 확인하세요. 노트북에 외부 키보드가 연결되어있는 경우 추가 드롭 다운 상자가 있으며 두 키보드 (또는 적어도 외부 키보드)에 대해이 작업을 수행해야합니다. 아래 스크린 샷은 "키보드 선택"대화 상자를 보여줍니다. 저는 "Joint Mac Keyboard"를 선택했습니다. 이것은 MacBook에서 GoldTouch 외장 키보드를 말하는 방식입니다. 기본값은 내장 키보드입니다.
"키보드 선택"대화 상자를 보여주는 스크린 샷

내가 그것을 알아 냈을 때-이것은 나를 위해 잘 작동합니다!


9

ssh 연결을 통해 또는 로컬 컴퓨터가 아닌 컴퓨터를 통해 emacs를 사용하는 경우 페이지 위로 / 페이지 아래로 버튼이 터미널 버퍼를 스크롤합니다. 제 경험으로는별로 도움이되지 않습니다.

페이지 아래로 및 페이지 위로 버튼을 설정하여 적절한 명령을 emacs에 보낼 수 있습니다. emacs에서는 다음과 같이 emacs 버퍼를 스크롤 할 수 있습니다.

  • 페이지 위로 : Ctl-v
  • 페이지 아래로 : Esc-v

따라서 터미널이 이러한 명령을 emacs로 보내도록하려면 위의 지침에 따라 Meta의 Alt 키를 변경하십시오. 그러나 "메타로 옵션 사용"옵션을 설정하는 대신 "페이지 아래로"및 "페이지 위로"옵션을 찾으십시오.

페이지 아래로

편집하려면 "페이지 아래로"옵션을 두 번 클릭하십시오. 변경 작업"쉘 전송 문자열" 을 입력 \ 026을 문자열로. 저장해.

페이지 위로

편집하려면 "페이지 위로"버튼을 두 번 클릭하십시오. 변경 작업"쉘 전송 문자열" 을 입력 \ 033v를 문자열로. 저장해.


7

터미널에서 Emacs를 사용하는 데 완전히 결혼했는지 확실하지 않지만 또 다른 옵션은 Carbon Emacs (내가 가장 좋아하는)와 Aquamacs (매우 Mac과 비슷 함)를 사용하는 것입니다. Carbon Emacs는 메타에 명령 키를 사용합니다.이 기능은 먼저 Esc 키를 누른 다음 컨트롤 키 시퀀스를 누르는 대신 Control과 Command를 누르고 있으면 Control-Meta 명령을 수행 할 수 있기 때문에 좋습니다.

또한, 만약 당신이 진지한 Emacs 사용자라면 프로그래밍에 적합한 키보드 (그 자체로 완전히 재 프로그래밍 할 수있는 키보드)를 구하는 것이 좋습니다. 저는 Kinesis를 사용하는데 약간의 비용이 들지만 내구성이 뛰어나고 매우 좋습니다.


4

개인적으로 시스템 환경 설정에서 명령처럼 작동하도록 설정 caps lock을 설정 한 다음 emacs init.el 파일에 다음을 포함합니다.

(setq mac-command-modifier 'ctrl)

그리고 이것은 대부분의 osx 응용 프로그램에서 명령으로 그리고 emacs에서 제어로 caps lock을 사용할 수있게합니다. 나를 위해 충분히 잘 작동합니다.


4

당신의 기쁨은 이제 막 시작되었습니다. 다른 트릭은 다음과 같습니다.

  • 빠른 입력을 위해서는 왼쪽 및 오른쪽 Shift 키를 사용하여 (및)로 지정하십시오.
  • fn 키 또는 다른 키를 "super"로 다시 매핑합니다.
  • Caps Lock을 제어하지만 다른 키로 만 만드십시오. 그 자체로 탈출입니다.

더 많은 정보 는 http://stevelosh.com/blog/2012/10/a-modern-space-cadet/ 에서 훌륭한 기사를 읽어보십시오 .


너무 멋져요! 고마워! Capslock 버튼에 대해 조건부 논리를 수행 할 생각조차하지 않았습니다. 매우 아프다!
wle8300

3

이 스레드는 5 년 전에 시작되었으며 ns-win.el또는 빌드에 대한 언급이 없습니다 --with-ns. 2013 년 10 월 현재 Emacs Trunk에서 사용할 수있는 모든 키 바인딩은 다음과 같습니다. 물론 직접 만들 수도 있습니다. 개인적으로 저는 init.elOSX의 Parallels를 통해 Windows XP와 기본적으로 OSX와 함께 사용할 수있는 모든 키 바인딩이 있는 하나 를 가지고 있습니다. 사용자가 자신의 키보드 단축키를 정의 할 수 있으므로 시스템 환경 설정 (Apple US 키보드 사용)에서 키보드를 다시 매핑 할 필요가 없습니다.Command 키가 포함되지 않은 키보드를 사용합니다. 하지만 트랙 포인트가 내장 된 IBM 클릭 키 키보드를 버려야합니까? 당연히 아니지. :) 저는 IBM clicky 키보드를 다음 삶으로 가져 가고 있습니다. 손의 긴장은 대문자 잠금에 대한 타격 제어가 아니라 부적절한 손목 / 팔 / 팔꿈치 위치로 인해 발생할 가능성이 큽니다. 연습을 통해 정확도가 향상되고, 어깨 너머로 보스의 도움으로 어떻게 진행되고 있는지 확인합니다. 즉, 생산성을 높이기위한 약간의 압력이 있습니다. :)

(define-key global-map [?\s-,] 'customize)
(define-key global-map [?\s-'] 'next-multiframe-window)
(define-key global-map [?\s-`] 'other-frame)
(define-key global-map [?\s-~] 'ns-prev-frame)
(define-key global-map [?\s--] 'center-line)
(define-key global-map [?\s-:] 'ispell)
(define-key global-map [?\s-?] 'info)
(define-key global-map [?\s-^] 'kill-some-buffers)
(define-key global-map [?\s-&] 'kill-this-buffer)
(define-key global-map [?\s-C] 'ns-popup-color-panel)
(define-key global-map [?\s-D] 'dired)
(define-key global-map [?\s-E] 'edit-abbrevs)
(define-key global-map [?\s-L] 'shell-command)
(define-key global-map [?\s-M] 'manual-entry)
(define-key global-map [?\s-S] 'ns-write-file-using-panel)
(define-key global-map [?\s-a] 'mark-whole-buffer)
(define-key global-map [?\s-c] 'ns-copy-including-secondary)
(define-key global-map [?\s-d] 'isearch-repeat-backward)
(define-key global-map [?\s-e] 'isearch-yank-kill)
(define-key global-map [?\s-f] 'isearch-forward)
(define-key global-map [?\s-g] 'isearch-repeat-forward)
(define-key global-map [?\s-h] 'ns-do-hide-emacs)
(define-key global-map [?\s-H] 'ns-do-hide-others)
(define-key global-map [?\s-j] 'exchange-point-and-mark)
(define-key global-map [?\s-k] 'kill-this-buffer)
(define-key global-map [?\s-l] 'goto-line)
(define-key global-map [?\s-m] 'iconify-frame)
(define-key global-map [?\s-n] 'make-frame)
(define-key global-map [?\s-o] 'ns-open-file-using-panel)
(define-key global-map [?\s-p] 'ns-print-buffer)
(define-key global-map [?\s-q] 'save-buffers-kill-emacs)
(define-key global-map [?\s-s] 'save-buffer)
(define-key global-map [?\s-t] 'ns-popup-font-panel)
(define-key global-map [?\s-u] 'revert-buffer)
(define-key global-map [?\s-v] 'yank)
(define-key global-map [?\s-w] 'delete-frame)
(define-key global-map [?\s-x] 'kill-region)
(define-key global-map [?\s-y] 'ns-paste-secondary)
(define-key global-map [?\s-z] 'undo)
(define-key global-map [?\s-|] 'shell-command-on-region)
(define-key global-map [s-kp-bar] 'shell-command-on-region)
;; (as in Terminal.app)
(define-key global-map [s-right] 'ns-next-frame)
(define-key global-map [s-left] 'ns-prev-frame)

(define-key global-map [home] 'beginning-of-buffer)
(define-key global-map [end] 'end-of-buffer)
(define-key global-map [kp-home] 'beginning-of-buffer)
(define-key global-map [kp-end] 'end-of-buffer)
(define-key global-map [kp-prior] 'scroll-down-command)
(define-key global-map [kp-next] 'scroll-up-command)

;; Allow shift-clicks to work similarly to under Nextstep.
(define-key global-map [S-mouse-1] 'mouse-save-then-kill)
(global-unset-key [S-down-mouse-1])


0

터미널 외부 에서 사용하기 위해 여기 에 상당히 포괄적 인 바인딩 세트를 만들었습니다 .

개인적으로 올바른 컨트롤 키가 없어서 맥 노트북 키보드를 사용할 수 없습니다.

대신 저는 7 년 넘게 Microsoft Natural Ergonomic Keyboard 4000 을 사용해 왔습니다. 정말 뚱뚱하고 위치가 좋은 Ctrl 및 Alt 키를 사용하고 드라이버를 다운로드 한 후 "시작"및 "응용 프로그램"키가 Mac에 간단하게 다시 매핑됩니다. 또한 뚱뚱하고 쉽게 눌리는 Cmd 키.

emacs 인체 공학적 문제를 피하기 위해 저는 Shift를 사용하는 것과 동일한 방식으로 Ctrl, Alt 및 Cmd를 사용하도록 훈련했습니다. 실제 키를 입력하는 사람의 반대쪽 손으로 누르는 것입니다. (즉, Caps Lock을 그대로 둡니다.)


0

시스템 환경 설정에서 제어하도록 caps lock을 설정하고 init.el에 다음 명령을 사용하여 명령을 메타로 설정하고 옵션을 super로 설정했습니다.

(custom-set-variables
 '(ns-alternate-modifier (quote super))
 '(ns-command-modifier (quote meta)))

0

SeilKarabiner의 2 가지 소프트웨어를 추천하고 싶습니다 . Seil을 설치하고 소프트웨어의 지침을 따르면 원하는 것을 얻을 수 있습니다. 내 경험상 Karabiner가 더 강력합니다. 레이아웃이 일반 키보드와 다른 일본어 키보드가 있습니다. 다른 용도로 키보드에있는 두 개의 추가 키를 F18 및 F19로 다시 매핑 하는 스 니펫 이 있습니다. 동일한 구문을 사용하여 "private.xml"파일을 편집하여 더 많은 작업을 수행 할 수 있습니다.

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