I'm used to write a ~ character by pressing Alt+N on Mac OS X. This does not work in Emacs. Alt+N key seems to be bind to the command history. So my question is how to write a ~ character in Emacs on Mac OS X?
EDIT: I'm using Aquamacs.
I'm used to write a ~ character by pressing Alt+N on Mac OS X. This does not work in Emacs. Alt+N key seems to be bind to the command history. So my question is how to write a ~ character in Emacs on Mac OS X?
EDIT: I'm using Aquamacs.
You could always open the 'character viewer', select 'Punctuation', find '~' (tilde), and then double click it. That will insert it at the Emacs point. (The 'character viewer' is readily accessible after checking 'Show Keyboard & Character Viewers in menu bar' from the Keyboard pane in the System Preferences window.)
You could also define an emacs-lisp function as:
(defun tilde () (interactive) (insert "~"))
and then invoke it with M-x tilde
to insert a tilde. Could then assign that function to the key combo of your choice as
(global-set-key "\M-\C-!" 'tilde) ;; you choose the combo
and add all this to your 'emacs init' file.
While this question is pretty old, none of the answers seems satisfying for Emacs for OS X (the most popular choice these days). So, for future readers ...
Plain Emacs for OS X uses both Alt keys as Meta by default. As many characters are typed using Alt on a german Mac keyboard (tilde, brackets, curly braces etc.), I'd recommend setting ns-right-alternate-modifier
to nil
, which enables typing tilde (Alt-n) and other characters using the right Alt key, while the left one can be used as Meta (like for M-x
).
Alternatively Cmd can be customized to be Meta. All options can be interactively customized under M-x customize-group ns
.
You could always open the 'character viewer', select 'Punctuation', find '~' (tilde), and then double click it. That will insert it at the Emacs point. (The 'character viewer' is readily accessible after checking 'Show Keyboard & Character Viewers in menu bar' from the Keyboard pane in the System Preferences window.)
You could also define an emacs-lisp function as:
(defun tilde () (interactive) (insert "~"))
and then invoke it with M-x tilde
to insert a tilde. Could then assign that function to the key combo of your choice as
(global-set-key "\M-\C-!" 'tilde) ;; you choose the combo
and add all this to your 'emacs init' file.
Unfortunately the answer by fpbhb does not work when running emacs in a terminal (emacs -nw).
I was able to come up with a solution to this problem that works in both situations (standalone and in-terminal). Also, I have an international keyboard and I was also able to fix the problem of not being able to type special characters when running emacs in the terminal.
This snippet properly binds the left option key to "META" when running emacs as an app (i.e. not in a terminal). It does not bind the right option key, which can be used to type special characters:
(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)
All of the above has no effect when running emacs in a terminal. To obtain the same key bindings in the Terminal you have to:
Terminal Preferences -> Keyboard -> Use Option as Meta key
Unfortunately, after doing this you will not be able to use the option key to type special characters in international keyboards. In particular I was missing the tilde, the backslash and the @.
I solved this last problem by adding the missing key mapping to my .emacs:
(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à.
quoted-insert
should deal with this.
C-qAlt-N
Aquamacs : Options -> Options Commands Meta Key -> Meta and French ?
C-x 8 '
followed by the vowel of your choice does it for me. If you want the tilde to go in the other direction you can replace the ' with a `.
I don't know whether this solution is universal. I'm using Linux.
© 2022 - 2024 — McMap. All rights reserved.
`
. – Timeout~
) on MacOS by default. Instead it is a combining character, creating e.g. ñ (Opt+n n) or a small tilda˜
(Opt+n <space>). – Gemoets