IT

Mac OS X Leopard 키 바인딩의 Emacs

lottoking 2020. 8. 14. 08:02
반응형

Mac OS X Leopard 키 바인딩의 Emacs


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

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

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


CTRL 및 Caps Lock 전환

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

대체 텍스트

ALT / OPTION을 META로 사용

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

대체 텍스트

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


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

+ -이동 한 단어를 왼쪽
+ 오른쪽으로 한 단어 이동-가
+ 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


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

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

행운을 빕니다


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

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


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

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

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

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

페이지 아래로

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

페이지 위로

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


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

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


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

(setq mac-command-modifier 'ctrl)

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


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

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

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


이 스레드는 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])

(인체 공학적 키보드는 아니지만 키의 이동과 느낌이 정말 마음에 들었고 Control 키, Caps Lock이 바뀝니다).

http://matias.ca/osxkeyboard/index.php


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

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

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

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


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

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

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

참고 URL : https://stackoverflow.com/questions/162896/emacs-on-mac-os-x-leopard-key-bindings

반응형