Mac OS X上的Emacs-要Alt还是Command?


20

这是官方的。我喜欢在Mac OS X上讨厌Emacs。

不管我做什么,我都会一面刺。

当我尝试\使用Alt+ Shift+ 书写时,7由于AltEmacs中的== Meta而导致错误。如果将绑定MetaCommand密钥,则可以避免该错误。一切皆好。直到我要使用Meta-Tab。现在我突然想Command- Tab从Emacs转到其他应用程序。

我现在很生气,有人可以帮我解决这个问题吗?如果我可以使用Altas meta而不安装aquamacs.org且不使用fn密钥,则希望使用它。

哦,顺便说一句,我使用瑞典语言环境。

编辑1:

第一个解决方案:添加(global-set-key [C-tab] [M-tab])~/.emacs。这将绑定Meta-tabControl-tab。不是我完全想要的,但应该可以。

Answers:


13

请参阅下面的选项 M-x customize-group ns

在那里您可以调整修改键的行为。我已将正确的alt设置为“无修饰符”-这与使用Alt-Gr的PC键盘上的行为相同。

我喜欢的另一个设置是取消设置两个alt键,然后使用该function键代替alt。


为我工作...您不应该说谢谢,但是谢谢。
法尔肯教授支持莫妮卡

11

我也有这个问题多年!最近,我再次在OS X中试用了Emacs。我终于通过在.emacs中添加以下内容解决了该问题:(这与Emacs 24.3一起使用)

(when (eq system-type 'darwin)
  (setq mac-right-option-modifier 'none))

这次真是万分感谢!现在我可以再次在emacs中了!:)
petre

4

我知道有些人总是出于这个原因购买带有美式键盘的Mac。

我也诅咒Emacs(也使用瑞典语),我发现的唯一解决方案是使用US Extended布局,但使用我的瑞典语键盘。我花了几年时间使用美式键盘作为主键盘,这样我就可以不加思索地或多或少地切换。

如果您不愿意使用布局切换路线,那么瑞典语版的OS X Emacs会让您很痛苦。


编辑:刚刚找到可能对西班牙有用的提示。这个想法是将发送到Emacs的角色重新映射到您想要的角色。我没有尝试过,但这听起来很有希望。


您应该认为,现在应该已经解决了这个问题
Zolomon

2

它并不是很优雅,但是您可以将Escape键用于meta并保留alt键用于特殊字符。例如,ESC x而不是M-x

但是与molbdnilo一样,大多数非美国键盘都喜欢编程。我曾经在芬兰工作了几周,而我所做的第一件事就是将KB切换到了美国。甚至盲目打字也比弄清楚如何在编程语言中经常键入所需的那些字符容易。(好吧,实际上我要做的第一件事就是切换语言;所幸我知道如何通过肌肉记忆来做到这一点:-)


3
是的,这几乎就像最常见的语法是美国人发明的。;-)
molbdnilo 2011年

1

当我从Linux转到macOS时,我遇到了同样的问题,我通过在我的emacs配置文件中添加以下代码来解决了这个问题:

;; check OS type
(cond
 ((string-equal system-type "windows-nt") ; Microsoft Windows
  (progn
    (message "Microsoft Windows")))
 ((string-equal system-type "darwin") ; Mac OS X
  (progn
    (setq mac-option-key-is-meta nil)
    (setq mac-command-key-is-meta t)
    (setq mac-command-modifier 'meta)
    (setq mac-option-modifier nil)
    (message "Mac OS X")))
 ((string-equal system-type "gnu/linux") ; linux
  (progn
    (message "Linux"))))

请注意用“ Mac OS X”注释的这部分代码,它将在emacs应用程序中将option密钥与command密钥交换,但是在整个视图中,command仍然command可以command+tab像以前一样使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.