Macos 如何在Mac OS X上的Emacs中写入波浪号(~)字符?

Macos 如何在Mac OS X上的Emacs中写入波浪号(~)字符?,macos,emacs,key-bindings,aquamacs,Macos,Emacs,Key Bindings,Aquamacs,我习惯在Mac OS X上按Alt+N来写~字符。这在Emacs中不起作用。Alt+N键似乎绑定到命令历史记录。所以我的问题是如何在Mac OS X上用Emacs编写~字符 编辑:我正在使用Aquamacs。您可以随时打开“字符查看器”,选择“标点符号”,找到“~”(波浪线),然后双击它。这将在Emacs点插入它。(在系统首选项窗口的键盘窗格中选中“在菜单栏中显示键盘和字符查看器”后,即可访问“字符查看器”。) 您还可以将emacs lisp函数定义为: (defun tilde () (int

我习惯在Mac OS X上按Alt+N来写~字符。这在Emacs中不起作用。Alt+N键似乎绑定到命令历史记录。所以我的问题是如何在Mac OS X上用Emacs编写~字符


编辑:我正在使用Aquamacs。

您可以随时打开“字符查看器”,选择“标点符号”,找到“~”(波浪线),然后双击它。这将在Emacs点插入它。(在系统首选项窗口的键盘窗格中选中“在菜单栏中显示键盘和字符查看器”后,即可访问“字符查看器”。)

您还可以将emacs lisp函数定义为:

(defun tilde () (interactive) (insert "~"))
然后使用
M-x tilde
调用它以插入一个tilde。然后可以将该函数分配给您选择的键组合,如下所示:

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

并将所有这些添加到您的“emacs init”文件中。

quoted insert
应处理此问题


C-qAlt-N

水上机器人:选项->选项命令Meta键->Meta和法语?

虽然这个问题已经很老了,但似乎没有一个答案能满足(当今最流行的选择)。所以,对于未来的读者

默认情况下,用于OS X的普通Emacs使用两个Alt键作为Meta键。由于许多字符是在德国Mac键盘上使用Alt键键入的(波浪形、方括号、花括号等),我建议将
ns right alternate modifier
设置为
nil
,这样可以使用右Alt键键入波浪形(Alt-n)和其他字符,而左键可以用作元(如
M-x


或者,可以将Cmd自定义为Meta。所有选项都可以在
M-x customize group ns

下交互自定义。不幸的是,当在终端(emacs-nw)中运行emacs时,fpbhb的答案不起作用

我能够想出一个解决这个问题的方法,它可以在两种情况下工作(独立和终端)。此外,我有一个国际键盘,我还能够解决在终端上运行emacs时无法键入特殊字符的问题

当将emacs作为应用程序运行时(即不在终端中),此代码段将左选项键正确绑定到“META”。它不绑定可用于键入特殊字符的正确选项键:

(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)
在终端中运行emacs时,上述所有操作都没有效果。要在终端中获得相同的密钥绑定,您必须:

终端首选项->键盘->将选项用作元键

不幸的是,执行此操作后,您将无法使用选项键在国际键盘中键入特殊字符。特别是我没有看到波浪线、反斜杠和@

我通过将缺少的键映射添加到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 "@"))

瞧。

您使用的是哪种键盘和键盘布局?英文键盘的背面至少有一个tilda(
~
),我使用的是德文布局的苹果键盘。默认情况下,Option+n不会在MacOS上插入tilda(
~
)。相反,它是一个组合字符,创建了例如ñ(Opt+n)或一个小的tilda
(Opt+n)。对我不起作用,我只得到了“î”。我的键盘是比利时法语,但是波浪形的组合键在emacs之外也是Alt-N。这个解决方案在编辑器中工作,但在迷你缓冲区中工作。你知道怎么在里面工作吗?我们能从迷你缓冲区调用这样的函数吗?把结果放进迷你缓冲区(我对Emacs很陌生)?嗯,这不是答案。根本问题源于Emacs禁用Alt在OS X上输入字符。请参阅下面我的答案。