Emacs unter Mac OS X Leopard-Tastenkombinationen

104

Ich bin ein Mac-Benutzer und habe beschlossen, Emacs zu lernen. Ich habe gelesen , dass die Belastung der Hand zu reduzieren und die Genauigkeit verbessert die CTRLund CAPS LOCKTasten sollen ausgetauscht werden. Wie mache ich das in Leopard?

Außerdem muss ich im Terminal den ESCSchlüssel verwenden, um Meta aufzurufen. Gibt es eine Möglichkeit, den Alt / Option-Schlüssel dazu zu bringen, stattdessen Meta aufzurufen?

Update: Während die Steuertaste jetzt viel einfacher zu drücken ist, wird die Metataste auch oft genug verwendet, sodass ihre Position auf meinem MacBook und meiner Apple-Tastatur ebenfalls Beachtung verdient. Tatsächlich finde ich, dass die Steuertaste tatsächlich leichter zu drücken ist, daher habe ich meine Steuertaste neu zugeordnet, um als Metataste zu fungieren. Hat jemand eine bessere / standardisiertere Lösung?

Kyle Cronin
quelle
4
Es ist besser, es für apple.stackexchange.com zu verschieben
anderer Coder

Antworten:

163

CTRL und CAPS LOCK tauschen

  1. Gehen Sie in die Systemeinstellungen
  2. Geben Sie die Tastatur und Maus Systemeinstellung
  3. Klicken Sie auf der Registerkarte Tastatur auf Modifizierertasten ...
  4. Tauschen Sie die Aktionen gegen Feststelltaste und -steuerung aus .

Alt-Text

Verwenden von ALT / OPTION als META

  1. Klicken Sie in der Menüleiste auf Terminal
  2. Klicken Sie auf Einstellungen ...
  3. Unter der Einstellungen Registerkarte finden Sie auf der Tastatur Registerkarte
  4. Aktivieren Sie das Kontrollkästchen Option als Metaschlüssel verwenden

Alt-Text

Das ist es! Sie sollten auf dem besten Weg sein, ein Emacs-Meister zu werden!

Kyle Cronin
quelle
8
'Option als Metaschlüssel verwenden' funktioniert, aber dies führt dazu, dass ich keine geschweiften Klammern und Pipes eingeben kann. '[] {} |' usw., da sie auf Option-7 und Option jetzt sind ... gut zugeordnet zu Meta. Irgendwelche Ideen?
Martin Wickman
1
@wic: Haben diese Charaktere keine eigenen Schlüssel?
Kyle Cronin
1
Nicht hier in Europa. Mit einer norwegischen Tastatur werden sie auf Alt-8 und 9 und Alt + Shift-8 und 9
abgebildet
3
Layout beim Codieren wechseln. Dann bekommen sie ihre eigenen Schlüssel, wie sie sollten. Ich bin schwedisch und finde nie die Notwendigkeit, meine Muttersprachler beim Codieren einzugeben.
Per Wiklander
1
@hhh Die Einstellungen beziehen sich auf die Tastatur. Stellen Sie daher sicher, dass Sie sie für Ihre externe Tastatur richtig eingestellt haben. Aber ja, sobald Sie die Änderung vorgenommen haben, sollte es überall in OS X funktionieren.
Kyle Cronin
47

Als Referenz sind hier die Tastenkombinationen zum Bewegen von Text aufgeführt:

+ - links bewegt ein Wort
+ - rechts ein Wort bewegen
+ deletezurück löscht ein Wort -
Shift+ + delete- foward löscht ein Wort
+ - nach oben einem Absatz
+ - nach unten bewegt einen Absatz
+ - Umzug der aktuellen Zeile beginnen
+ Bewegung zu Ende - der aktuellen Zeile
Shift+ eine der oben genannten Optionen erweitern die Auswahl um den entsprechenden Betrag

Klicken und ziehen - Text auswählen
Doppelklicken und dann ziehen - Text auswählen, an Wortenden umbrechen
Dreifachklicken und dann ziehen - Text auswählen, an Absatzenden umbrechen

Shift+ Text mit der Maus auswählen - Zur Auswahl hinzufügen (zusammenhängend)
+ Text mit der Maus
auswählen - Zur Auswahl hinzufügen (nicht zusammenhängend) + Ziehen - rechteckigen Bereich auswählen (nicht zusammenhängend)
+ + ziehen - rechteckigen Bereich zur Auswahl hinzufügen Auswahl auswählen
- verschieben Text
+ Auswahl ziehen - Text kopieren

Ctrl+ A- Umzug des aktuellen Absatzes beginnen
Ctrl+ B- Bewegung ein Zeichen nach links
Ctrl+ D- vorwärts löschen
Ctrl+ E- Umzug nach Ende des aktuellen Absatzes
Ctrl+ F- ein Zeichen nach rechts bewegen
Ctrl+ H- löscht
Ctrl+ K- löscht Rest der aktuellen Absatz
Ctrl+ L- Mitte das Fenster auf dem aktuellen Zeile
Ctrl+ N- verschieben nach unten eine Zeile
Ctrl+ O- Insert neue Zeile nach Cursor
Ctrl+ P- eine Zeile nach oben
Ctrl+ T- Transponierte (swap) zwei umlaufende Charakter
Ctrl + V- Übergang zu Ende, dann eine linke Zeichen
Ctrl+ Y- einfügen von Text zuvor gelöschten mitCtrl - - K

In Optionzu Ctrl+ Foder Ctrl+ , Bum ein Wort anstelle eines Zeichens in einer Zeit zu bewegen.

Chris
quelle
Eine weitere gute Ressource ist diese Seite hcs.harvard.edu/~jrus/Site/System%20Bindings.html
Gourneau
3
Ch löscht zwar in Bash- und Mac OS X Cocoa-Textfeldern, hilft aber in Emacs.
Asmeurer
11

Die andere Antwort war sehr vollständig, aber zusätzlich würde ich erwähnen, dass ich nur die Feststelltaste auf eine zweite Steuertaste gesetzt habe, anstatt sie auszutauschen.

Außerdem werden Sie feststellen, dass die große Mehrheit der Texteingabefelder in Mac OS X bereits Emacs-Tastenanschläge akzeptiert (^ A Zeilenanfang, ^ E Zeilenende, ^ P, ^ N, ^ K, ^ Y usw.).

Viel Glück

mike511
quelle
6
Möglicherweise haben Sie etwas vor - ich kann mich nicht erinnern, wann ich das letzte Mal die Feststelltaste verwendet habe.
Kyle Cronin
11

Die Antwort von Kyle Cronin gefällt mir sehr gut, aber ich möchte eines hinzufügen: Stellen Sie sicher, dass Sie die entsprechende Tastatur auswählen, damit dies funktioniert. Wenn Sie eine externe Tastatur an Ihren Laptop angeschlossen haben, gibt es ein zusätzliches Dropdown-Feld, das Sie für beide Tastaturen (oder zumindest für Ihre externe Tastatur) ausführen müssen. Der folgende Screenshot zeigt das Dialogfeld "Tastatur auswählen". Ich habe "Gemeinsame Mac-Tastatur" ausgewählt. Dies ist die Art und Weise, wie MacBook die externe GoldTouch-Tastatur sagt. Die Standardeinstellung ist die integrierte Tastatur.
Screenshot mit dem Dialogfeld "Tastatur auswählen"

Sobald ich das herausgefunden habe, funktioniert das großartig für mich!

R.Klug
quelle
9

Wenn Sie Emacs über eine SSH-Verbindung oder über einen Computer verwenden, der sich nicht auf Ihrem lokalen Computer befindet, scrollen die Schaltflächen zum Auf- und Abblättern durch den Terminalpuffer - meiner Erfahrung nach nicht allzu hilfreich.

Sie können die Schaltflächen zum Ab- und Abblättern festlegen, um die entsprechenden Befehle an emacs zu senden. In Emacs können Sie wie folgt durch den Emacs-Puffer scrollen:

  • Bild auf: Ctl-v
  • Bild ab: Esc-v

Befolgen Sie die obigen Anweisungen, um die Alt-Tasten für Meta zu ändern, damit das Terminal diese Befehle an Emacs sendet. Anstatt jedoch die Option "Option als Meta verwenden" festzulegen, suchen Sie die Optionen "Bild ab" und "Seite auf".

Bild nach unten

Doppelklicken Sie auf die Option "Bild ab", um sie zu bearbeiten. Ändern Sie die Aktion in "Zeichenfolge an Shell senden" und geben Sie \ 026 als Zeichenfolge ein. Speichern Sie es.

Bild auf

Doppelklicken Sie auf die Schaltfläche "Bild auf", um sie zu bearbeiten. Ändern Sie die Aktion in "Zeichenfolge an Shell senden" und geben Sie \ 033v als Zeichenfolge ein. Speichern Sie es.


quelle
7

Ich bin mir nicht sicher, ob Sie mit der Verwendung von Emacs vom Terminal aus völlig verheiratet sind, aber eine andere Option ist die Verwendung von Carbon Emacs (mein Favorit) und Aquamacs (sehr Mac-ähnlich). Carbon Emacs verwendet die Befehlstaste für Meta. Dies ist hilfreich, da Sie Control-Meta-Befehle ausführen können, indem Sie Control und Command gedrückt halten, anstatt zuerst die Escape-Taste und dann die Steuertastenfolge zu drücken.

Wenn Sie ein ernsthafter Emacs-Benutzer sind, empfehle ich Ihnen dringend, eine Tastatur zu erwerben, die für die Programmierung geeignet ist (eine Tastatur, die von sich aus vollständig neu programmiert werden kann). Ich benutze eine Kinesis, es ist ein bisschen Geld, aber sie sind extrem langlebig und sehr schön.

dnolen
quelle
4

Persönlich habe ich die Feststelltaste so eingestellt, dass sie sich wie ein Befehl in den Systemeinstellungen verhält, und dann in meiner emacs init.el-Datei:

(setq mac-command-modifier 'ctrl)

Dadurch kann ich die Feststelltaste als Befehl in den meisten OSX-Anwendungen und als Steuerelement in Emacs verwenden. funktioniert gut genug für mich.

Alexandre Paes
quelle
4

Deine Freude fängt gerade erst an. Andere Tricks sind:

  • Verwenden Sie die linke und rechte Umschalttaste, um auch (und) schnell zu tippen.
  • Ordnen Sie Ihren fn-Schlüssel oder einen anderen Schlüssel neu zu, um "super" zu sein.
  • Machen Sie die Feststelltaste zur Kontrolle, aber nur mit einem anderen Schlüssel. An sich ist es Flucht.

Lesen Sie den ausgezeichneten Artikel unter http://stevelosh.com/blog/2012/10/a-modern-space-cadet/, um weitere Informationen zu erhalten.

Charles Merriam
quelle
das ist so toll! Vielen Dank! Ich habe nicht einmal daran gedacht, diese bedingte Logik für die Feststelltaste zu verwenden. so krank!
wle8300
3

Dieser Thread wurde vor 5 Jahren gestartet und es gibt keine Erwähnung ns-win.eloder Erstellung--with-ns . Hier finden Sie alle Schlüsselbindungen, die ab Oktober 2013 in Emacs Trunk (sofort einsatzbereit) verfügbar sind. Natürlich können Sie auch Ihre eigenen erstellen. Persönlich habe ich eine init.elmit all meinen Schlüsselbindungen, die mit Windows XP über Parallels unter OSX und auch nativ mit OSX verwendet werden können. Da der Benutzer seine eigenen Tastaturkürzel definieren kann, sehe ich keine Notwendigkeit, die Tastatur in den Systemeinstellungen (mit einer Apple US-Tastatur) neu zuzuordnen, es sei dennVerwenden einer Tastatur ohne Befehlstaste. Aber würde ich meinen Vorrat an IBM Clicky-Tastaturen mit integriertem Trackpoint wegwerfen? Natürlich nicht. :) Ich nehme meine IBM Clicky-Tastaturen mit ins nächste Leben. Jede Handbelastung wird höchstwahrscheinlich durch eine falsche Position von Handgelenk / Arm / Ellbogen verursacht, nicht durch Drücken der Kontrolle gegenüber der Feststelltaste. Die Genauigkeit wird durch Übung und mithilfe eines Chefs verbessert, der über die Schulter schaut, um zu sehen, wie es Ihnen geht - dh ein wenig Druck, produktiver zu sein :)

(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])
Gesetzesliste
quelle
2

(Keine ergonomische Tastatur, aber ich mag die Bewegung und das Gefühl der Tasten sehr, und die Steuertaste und die Feststelltaste sind vertauscht).

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

Gene T.
quelle
0

Ich habe eine ziemlich umfassende Reihe von Bindungen erstellt hier für den Einsatz außerhalb des Terminals.

Persönlich kann ich die Mac-Laptop-Tastatur nicht verwenden, da die richtige Steuertaste fehlt.

Stattdessen verwende ich das Microsoft Natural Ergonomic Keyboard 4000 seit über 7 Jahren: Es hat wirklich dicke, gut positionierte Strg- und Alt-Tasten, und nach dem Herunterladen der Treiber werden die Tasten "Start" und "Anwendung" trivial dem Mac neu zugeordnet Cmd-Taste, die auch fett und leicht zu drücken ist.

Um ergonomische Probleme mit Emacs zu vermeiden, habe ich mich darin geschult, Strg, Alt und Cmd genauso zu verwenden wie Shift. Drücken Sie sie mit der Hand gegenüber der, die die eigentliche Taste eingibt. (Das heißt, ich lasse die Feststelltaste einfach so wie sie ist.)

aec
quelle
0

Ich habe die Feststelltaste so eingestellt, dass sie in den Systemeinstellungen gesteuert wird, und ich habe Folgendes in meiner init.el, um den Befehl auf meta und die Option auf super zu setzen:

(custom-set-variables
 '(ns-alternate-modifier (quote super))
 '(ns-command-modifier (quote meta)))
Lester Cheung
quelle
0

Ich möchte 2 Software Seil und Karabiner empfehlen . Durch einfaches Installieren von Seil und Befolgen der Anweisungen in der Software sollten Sie in der Lage sein, das zu erreichen, was Sie wollen. Nach meiner Erfahrung ist Karabiner mächtiger. Ich habe eine japanische Tastatur, deren Layout sich von den normalen unterscheidet. Ich habe einen Ausschnitt, der zwei zusätzliche Tasten auf meiner Tastatur F18 und F19 für andere Zwecke neu zuordnet. Sie können dieselbe Syntax verwenden, um Ihre Datei "private.xml" zu bearbeiten und weitere Aufgaben auszuführen.

Minwei Shen
quelle