2012-06-20 22 views
5

Ich benutze ein ~ Zeichen, indem ich Alt + N auf Mac OS X drücke. In Emacs funktioniert das nicht. Die Taste "Alt + N" scheint an den Befehlsverlauf gebunden zu sein. Also meine Frage ist, wie man ein ~ Zeichen in Emacs auf Mac OS X schreibt?Wie schreibe ich eine Tilde (~) in Emacs unter Mac OS X?

EDIT: Ich benutze Aquamacs.

+0

Welches Tastatur- und Tastaturlayout verwenden Sie? Englische haben es zumindest über dem Backtick '\' '. – Ryan

+0

Ich benutze ein Apple Keyboard mit deutschem Layout. –

Antwort

2

Sie können immer den 'Zeichenbetrachter' öffnen, 'Interpunktion' auswählen, '~' (Tilde) finden und dann doppelt darauf klicken. Das wird es am Emacs-Punkt einfügen. (Der "Charakter Betrachter ist leicht zugänglich nach‚Show Keyboard & Character Zuschauer in der Menüleiste‘aus dem Tastaturbereich im Fenster Systemeinstellungen zu überprüfen.)

Sie könnten auch eine Emacs-Lisp-Funktion als definieren:

(defun tilde() (interactive) (insert "~")) 

und dann mit M-x tilde aufrufen, um eine Tilde einzufügen. Könnte dann als

(global-set-key "\M-\C-!" 'tilde) ;; you choose the combo 

und fügen Sie alles zu Ihrer ‚Emacs init‘ Datei, um diese Funktion der Tastenkombination Ihrer Wahl zuweisen.

+0

Diese Lösung funktioniert zwar im Editor, funktioniert aber im Minipuffer. Irgendeine Idee, wie man es darin arbeiten lässt? Können wir eine solche Funktion aus dem Mini-Puffer aufrufen, oder das Ergebnis in den Mini-Puffer bringen (ich bin neu bei Emacs)? – pbernery

+0

IMHO, das ist nicht die Antwort. Das Grundproblem rührt daher, dass Emacs Alt deaktiviert, um Zeichen unter OS X einzugeben. Siehe meine Antwort unten. – fpbhb

0

quoted-insert sollte damit umgehen.

C-qAlt-N

+0

Funktioniert nicht für mich, ich bekomme nur "î". Meine Tastatur ist belgisch-französisch, aber die Tastenkombination für die Tilde ist auch Alt-N außerhalb von Emacs. – Norswap

0

Aquamacs: Optionen -> Optionen Befehle Meta Key -> Meta und Französisch?

7

Während diese Frage ziemlich alt ist, scheint keine der Antworten zufriedenstellend für Emacs for OS X (die beliebteste Wahl in diesen Tagen). Also, für zukünftige Leser ...

Plain Emacs für OS X verwendet sowohl Alt Schlüssel als Meta standardmäßig. Wie viele Zeichen eingegeben werden Alt auf Deutsch Mac-Tastatur (Tilde, Klammern, geschweiften Klammern etc.), würde ich empfehlen ns-right-alternate-modifier-nil Einstellung, die Tilde ermöglicht die Eingabe (Alt-n) und andere Zeichen der Verwendung rechtsAlt Taste, während die links man kann verwendet werden, wie Meta (wie für M-x).

Alternativ Cmd kann angepasst werden, um Meta zu sein. Alle Optionen können unter M-x customize-group ns interaktiv angepasst werden.

0

Leider funktioniert die Antwort von fpbhb nicht, wenn Emacs in einem Terminal ausgeführt werden (emacs -nw).

Ich war in der Lage, eine Lösung für dieses Problem zu finden, das in beiden Situationen (Standalone und In-Terminal) funktioniert. Außerdem habe ich eine internationale Tastatur, und ich konnte auch das Problem beheben, dass ich keine Sonderzeichen eingeben konnte, wenn ich emacs im Terminal laufen ließ.

Dieses Snippet bindet den linken Optionsschlüssel korrekt an "META", wenn Emacs als App ausgeführt wird (d. H. Nicht in einem Terminal).Es bindet nicht die richtige Option-Taste, die Sonderzeichen eingeben verwendet werden können:

(setq mac-command-key-is-meta nil 
     mac-command-modifier nil) 
(setq mac-option-key-is-meta t 
     mac-option-modifier 'meta 
     mac-right-option-modifier nil) 

Alle oben genannten nicht wirksam, wenn Emacs in einem Terminal ausgeführt werden. Um die gleichen Tastenbelegungen im Terminal zu erhalten, müssen Sie:

Terminal-Einstellungen -> Tastatur -> Verwenden Sie Option als Meta-Taste

Leider danach tun Sie verwenden können, um die Option Schlüssel nicht eingeben Sonderzeichen in internationalen Tastaturen. Insbesondere fehlte mir die Tilde, der Backslash und das @.

Ich löste dieses letzte Problem, das durch die fehlende Keymapping meiner .emacs hinzu:

(define-key key-translation-map (kbd "M-ñ") (kbd "~")) 
(define-key key-translation-map (kbd "M-º") (kbd "\\")) 
(define-key key-translation-map (kbd "M-2") (kbd "@")) 

Voilà.