Emacs na klawiaturze Mac OS X Leopard

Jestem użytkownikiem Maca i postanowiłem nauczyć się Emacsa. Mam przeczytałem, że aby zmniejszyć obciążenie dłoni i poprawić dokładność, należy zamienić klawisze CTRL i CAPS LOCK. Jak to zrobić w Leopardzie?

Ponadto w Terminalu muszę użyć klucza ESC do wywołania meta. Czy jest jakiś sposób, aby zamiast tego użyć klawisza alt/option, aby wywołać meta?

Aktualizacja: podczas gdy klawisz kontrolny jest teraz znacznie łatwiejszy do trafienia, klucz meta jest również używany na tyle często, że jego na uwagę zasługuje również pozycja na moim MacBooku I klawiaturze Apple. W rzeczywistości uważam, że klawisz kontrolny jest łatwiejszy do trafienia, więc zmieniłem swój klucz kontrolny, aby działał jako klucz meta. Czy ktoś ma lepsze / bardziej standardowe rozwiązanie?

Author: Loom, 2008-10-02

13 answers

Zamiana CTRL i CAPS LOCK

  1. przejdź do Preferencji systemowych
  2. Wprowadź Klawiatura i mysz panel preferencji
  3. w zakładce Klawiatura Kliknij klawisze modyfikujące ...
  4. Zamień akcje na Caps Lock i Control .

alt text

Używanie ALT / OPTION jako META

  1. w pasku menu Kliknij Terminal
  2. Kliknij Preferencje...
  3. w zakładce Settings przejdź do zakładki Keyboard
  4. zaznacz pole oznaczone użyj opcji jako meta key

alt text

To jest to! Powinieneś być na dobrej drodze do zostania mistrzem Emacsa!

 158
Author: Kyle Cronin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-22 23:59:48

Dla odniesienia, oto kluczowe powiązania, do poruszania się po tekście:

+ - / align = "left" /
+ - przesuń w prawo jedno słowo
+ delete - wstecz usuń jedno słowo
Shift + + delete - usuń jedno słowo
+ - przesuń w górę o jeden akapit
+ - przesuń w dół o jeden akapit
+ - przesuń do początku bieżącego Kolejka
+ - przesuń do końca bieżącej linii
Shift + dowolny z powyższych rozszerz wybór o odpowiednią kwotę

Kliknij, a następnie przeciągnij-wybierz tekst
Kliknij dwukrotnie, a następnie przeciągnij-zaznacz tekst, owijając go do word ends
Kliknij trzykrotnie, a następnie przeciągnij i zaznacz tekst, owijając go do akapitu

Shift + Zaznaczanie tekstu myszką-Dodaj do zaznaczenia (ciągła)
+ Zaznacz tekst za pomocą myszki-Dodaj do zaznaczenia (nieciągłe)
+ przeciągnij-wybierz prostokątny obszar (nie przylegający)
+ + przeciągnij-dodaj prostokątny obszar do zaznaczenia
Przeciągnij zaznaczenie-przenieś tekst
+ przeciągnij zaznaczenie-Kopiuj tekst

Ctrl + A - przesunięcie do początku bieżącego akapitu
Ctrl + B - przesuń w lewo o jeden znak
Ctrl + D - forwards delete
Ctrl + E - przesuń do końca prądu paragraf
Ctrl + F - przesuń w prawo o jeden znak
Ctrl + H - usunąć
Ctrl + K - usunąć pozostałą część bieżącego akapitu
Ctrl + N - przesuń w dół o jedną linię
Ctrl + O - Wstaw nową linię za kursorem
Ctrl + P - przesuń w górę o jedną linię
Ctrl + T - transpozycja (Zamiana) dwóch otaczających znaków
Ctrl + V - przesuń do końca, a następnie w lewo jeden znak
Ctrl + Y - wklej tekst wcześniej usunięty za pomocą Ctrl - K

 45
Author: chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-27 03:17:57

Druga odpowiedź była bardzo kompletna, ale dodatkowo dodam, że właśnie ustawiłem caps lock klucz do drugiego klawisza sterującego, zamiast go wymieniać.

Zauważysz również, że znaczna większość pól wprowadzania tekstu w systemie Mac OS X akceptujemy już naciśnięcia klawiszy Emacsa (^a początek linii, ^E koniec linii, ^P, ^N, ^K, ^Y, itd.)

Powodzenia

 11
Author: mike511,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-02 16:05:16

Bardzo podoba mi się Odpowiedź udzielona przez Kyle ' a Cronina, ale chcę dodać jedną rzecz - upewnij się, że wybrałeś odpowiednią klawiaturę, aby to działało. Jeśli masz zewnętrzną klawiaturę podłączoną do laptopa, istnieje dodatkowe pole rozwijane i musisz to zrobić dla obu klawiatur (lub przynajmniej dla zewnętrznej klawiatury). Zrzut ekranu poniżej pokazuje okno dialogowe "wybierz klawiaturę" - wybrałem "Joint Mac Keyboard", co jest sposobem MacBooka na powiedzenie GoldTouch klawiatura zewnętrzna-domyślnie jest to wbudowana klawiatura.
Zrzut ekranu pokazujący okno "wybierz klawiaturę"

Kiedy już to rozgryzłem-to działa świetnie dla mnie!

 11
Author: R.Klug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-04 18:15:36

Jeśli używasz Emacsa przez połączenie ssh lub przez komputer nie na komputerze lokalnym, przyciski page up / page down przewijają się przez bufor terminala - z mojego doświadczenia, niezbyt pomocne.

Możesz ustawić przyciski page down i page up, aby wysyłać odpowiednie polecenia do Emacsa. W Emacsie możesz przewijać bufor Emacsa w następujący sposób:

  • Page Up: Ctl-v
  • strona w dół: Esc-v

Aby terminal wysłał te polecenia do Emacsa, wykonaj powyższa instrukcja zmiany klawiszy Alt dla Meta. Zamiast jednak ustawiać opcję "Użyj opcji jako meta", znajdź opcje" strona w dół "i" strona w górę".

Page Down

Kliknij dwukrotnie opcję "strona w dół", aby ją edytować. Zmień działanie na "wyślij łańcuch do powłoki" i wpisz \026 jako sznurek. Daruj sobie.

Page Up

Kliknij dwukrotnie przycisk "Strona w górę", aby ją edytować. Zmień działanie na " wyślij string to shell " i wprowadź \033v jako łańcuch. Daruj sobie.

 9
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-11 20:01:53

Nie jestem pewien, czy jesteś całkowicie żonaty z używaniem Emacsa z terminala, ale inną opcją jest użycie Carbon Emacs (mój ulubiony) i Aquamacs (bardzo Mac-like). Carbon Emacs używa klawisza command dla meta, jest to miłe, ponieważ możesz wykonywać polecenia Control-Meta po prostu przytrzymując Control i Command w dół, zamiast najpierw naciskając escape, a następnie sekwencję klawiszy control.

Ponadto, jeśli jesteś poważnym użytkownikiem Emacsa, to zdecydowanie polecam Ci klawiaturę nadającą się do programowania (czyli to jest całkowicie przeprogramowalne przez siebie). Używam Kinesis, to trochę pieniędzy, ale są niezwykle trwałe i całkiem ładne.

 7
Author: dnolen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-11 22:53:11

Osobiście mam ustawiony caps lock, aby zachowywać się jak komenda na preferencjach systemowych, a następnie na moim Emacs init.plik el:

(setq mac-Command-modifier ' ctrl)

A to pozwala mi używać caps Locka jako polecenia w większości aplikacji osx i jako sterowania w Emacsie. dla mnie działa wystarczająco dobrze.

 4
Author: Alexandre Paes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-29 15:39:23

Twoja radość dopiero się zaczyna. Inne sztuczki to:

  • Użyj lewego i prawego klawisza shift, aby również być (i) do szybkiego pisania.
  • Zmień swój klucz fn lub inny klucz, aby był "super".
  • Spraw, by caps lock był kontrolowany, ale tylko za pomocą innego klucza. Sama w sobie jest ucieczką.

Przeczytaj doskonały artykuł w http://stevelosh.com/blog/2012/10/a-modern-space-cadet / aby uzyskać więcej informacji.

 4
Author: Charles Merriam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-06 21:36:42

Ten wątek został uruchomiony 5 lat temu i nie ma wzmianki o ns-win.el lub build --with-ns. Oto wszystkie kluczowe wiązania dostępne (po wyjęciu z pudełka) w bagażniku Emacsa od października 2013. I, oczywiście, możesz stworzyć swój własny. Osobiście mam jeden init.el ze wszystkimi moimi powiązaniami kluczy, które mogą być używane z Windows XP poprzez Parallels na OSX, a także natywnie z OSX. Ponieważ użytkownik może zdefiniować własne skróty klawiaturowe, nie widzę potrzeby ponownego mapowania klawiatury w Preferencjach systemowych (z klawiaturą Apple USA) , chyba że używa klawiatury, która nie zawiera klawisza Command. Ale czy mógłbym wyrzucić mój zapas klawiatur IBM clicky z wbudowanym trackpoint? Oczywiście, że nie. :) Zabieram ze sobą klawiatury IBM clicky do następnego życia. Każde obciążenie dłoni jest najprawdopodobniej spowodowane niewłaściwą pozycją nadgarstka / ramienia / łokcia, a nie uderzeniem control kontra caps lock. Dokładność jest poprawiana poprzez praktykę i z pomocą szefa patrząc przez ramię, aby zobaczyć, jak przychodzisz - czyli trochę presji, aby być bardziej produktywnym:)

(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])
 3
Author: lawlist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-27 05:20:19

(nie ergonomiczna klawiatura, ale bardzo podoba mi się podróż i wyczucie klawiszy oraz klawisz Sterujący, Caps Lock są wymieniane).

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

 2
Author: Gene T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 16:22:58

Stworzyłem dość obszerny zestaw wiązań tutaj do użytku Poza terminala.

Osobiście nie mogę używać klawiatury laptopa mac z powodu braku odpowiedniego klawisza sterowania.

Zamiast tego używam Microsoft Natural Ergonomic Keyboard 4000 od ponad 7 lat: ma naprawdę grube, dobrze ustawione klawisze Ctrl i Alt, a po pobraniu jego sterowników Klawisze "Start" i "aplikacja" są trywialnie zamienione na klawisze "Start" i "Application". Klawisz Cmd Mac, który jest również gruby i łatwo przygnębiony.

Aby uniknąć problemów z ergonomią Emacsa wyszkoliłem się do używania Ctrl, Alt i Cmd w taki sam sposób jak my stosujemy Shift-wciskając je ręką naprzeciwko klawisza. (Czyli po prostu Zostawiam Caps Lock tak jak jest.)

 0
Author: aec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-11 00:56:16

Ustawiłem caps lock na control w Preferencjach systemowych i mam następujące w moim init.el aby ustawić polecenie na meta i opcję na super:

(custom-set-variables
 '(ns-alternate-modifier (quote super))
 '(ns-command-modifier (quote meta)))
 0
Author: Lester Cheung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 00:34:34

Polecam 2 oprogramowanie Seil i Karabiner . Po prostu zainstaluj Seil i postępuj zgodnie z instrukcjami w oprogramowaniu, powinieneś być w stanie osiągnąć to, czego chcesz. Z mojego doświadczenia wynika, że Karabiner jest mocniejszy. Mam japońską klawiaturę, której układ różni się od normalnych. Mam trochę snippet , który remapuje dwa dodatkowe klawisze na mojej klawiaturze do F18 i F19 do innego użytku. Możesz użyć tej samej składni, aby edytować swój " prywatny.XML " plik do zrobienia więcej rzeczy.

 0
Author: Minwei Shen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-25 04:56:12