2013-02-15 17 views
12

Używam Emacsa w terminalu Mac OS X, zainstalowanym z homebrew.Jak ustawić wiązanie klawiszy CMD w Emacs?

Mój klawisz CTRL to mój klawisz C, a klawisz ALT to Meta.

Jak zdefiniować powiązania klawiszy dla kombinacji klawiszy CMD?

Na przykład chcę ustawić CMD- (strzałka w prawo), aby przejść do końca linii.


EDIT

Próbowałem @ sugestie nickcarlo jest poniżej

(setq mac-command-modifier 'super) 
(global-set-key (kbd "s-<right>") 'move-end-of-line) 

Nie sądzę klawisz CMD jest ustawiony Super prawidłowo, ponieważ nie widzę s-foo w mini-bufor, tak jak bym pisał: C-x lub M-x lub cokolwiek innego. Zauważyłem, że CMD-right, kiedy mam otwarte dwa okna terminala, przełącza się między dwoma terminalami, więc pomyślałem, że może to blokować jakiekolwiek niestandardowe ustawienie. Jednak próbowałem:

(global-set-key (kbd "s-9") 'move-end-of-line) 

.. i CMD-9 nadal nic nie robi, z wyjątkiem sygnału dźwiękowego, aby powiedzieć mi, że naciskałem coś nie tak.

Ustawianie non-CMD-klucz combo wydaje się działać prawidłowo, jak:

(global-set-key (kbd "C-w") 'move-end-of-line) 
+4

AFAIK, nie można tego zrobić, tak długo, jak uruchomić Emacs wewnątrz terminalu. Modyfikator cmd Mac nie jest przepuszczany (i może nawet nie być możliwy do kodowania w standardowych protokołach terminalowych/zestawach znaków). Jeśli chcesz, aby to działało, powinieneś pomyśleć o uruchomieniu Emacs.app jako aplikacji. –

Odpowiedz

11

Można ustawić ją na coś podobnego:

(global-set-key (kbd "s-<right>") 'move-end-of-line) 

"s" jest odniesienie do klawisza polecenia .

PS: Nie jestem na moim Macu teraz, więc nie jestem pewien, co dokładnie trzeba napisać, aby ustawić go na konkretne klucze, które wspomniałeś, aby przenieść go na koniec linii, ale polecenie jest reprezentowane przez w emacs.

EDYTOWANIE Właśnie przetestowałem to na moim mac. Jest to dokładny kod, który napiszesz (jeśli chcesz go ustawić globalnie), aby powiązać swój klawisz polecenia + klawisz strzałki w prawo, aby przesunąć kursor na koniec linii.

Jeśli powyższe nie działa, można także spróbować

(global-set-key (kbd "\s <right>") 'move-end-of-line) 

Różnica między jednym a ten powyżej jest to, że powyżej równa się Cmd + prawo i ten przyrównuje do CMD, a następnie zwolnić CMD i uderz w prawy klawisz. Oba działają na OS X w moim systemie.

Sprawdź również następujące stanowisko ustawić CMD jako super kluczem w przypadku, gdy nie ma już Emacs zarejestrować go jako takie:

http://ergoemacs.org/emacs/emacs_hyper_super_keys.html

Konkretnie, można użyć następującego kodu, aby ustawić do góry twój CMD klucz jako Super:

(setq mac-command-modifier 'super) 
+0

Nie mogę tego zrobić. Powinienem powiedzieć, że używam Emacs Live - https://github.com/overtone/emacs-live .. jednak spróbowałem zwykłego vanilla emacs i nadal nie ma wyniku. Ten kod - https://github.com/lest/emacs-config/blob/master/rc-hotkeys.el - sugeruje, że format powinien być w formacie , ale to nadal nie działa. To tak, jakby wiązanie właśnie się nie rejestrowało. – cannyboy

+0

@cannyboy Dostałem moją kopię Emacsa z Macports (port install emacs-app) Być może właśnie dlatego mogę go uruchomić z powyższym kodem. Nigdy nie używałem Emacs Live, więc nie jestem pewien, jak to się różni od tego, który mam. –

+0

@cannyboy Gdy napiszesz ten wiersz lub jakikolwiek inny wiersz w ten sposób, przejdź na koniec linii i wykonaj C-x C-e i sprawdź, czy wyświetla poniżej nazwę funkcji w poniższym mini-buforze. Możesz również sprawdzić wiązania klawiszy, wykonując C-hb i sprawdzić, czy jest tam wymienione. –

1

Krok 1: cx cf .emacs // otwiera.plik Emacs

Etap 2: Dodaje się następujące linie na końcu pliku .emacs

;; changing the command to control 
    (setq mac-command-modifier 'control) 

Etap 3: Zapisz plik .emacs

Etap 4: Mx analizy-bufor // Mx = Alt -x // Sprawdza bufor .emacs i ponownie ładuje Emacsa

Krok 5: Wypróbuj CMD-e, aby przejść do końca wiersza. // Teraz CMD działa jak kontrola

Krok 6: Nadal CMD-e nie działa od nowa Emacsa.

Ciesz się za pomocą Emacs!

+0

Czy nie ustawiłoby to jego klawisza polecenia jako jego klawisza Control? Nie sądzę, że to właśnie zamierza zrobić. –

+1

Czuję, że wygodniej jest używać cmd, ponieważ oszczędza to dużo czasu i zmniejsza mały ból palca. – USK

+1

Rozumiem to i wydaje mi się, że jest to ogólna praktyka społeczności OS X Emacs (nie towarzyszy mi jednak, ponieważ mam klucz CMD związany z innymi operacjami). Chciałem tylko powiedzieć, że nie sądzę, że wysłana ma zamiar zmienić jego operacje meta na jego CMD klucz. –

6

W Aquamacs, co pracował dla mnie jest następująca

(global-set-key (kbd "A-r") 'my-command) 
+2

Wielkie dzięki. Właśnie tego szukałem moich Aquamaków :) – shivams

Powiązane problemy