背景资料:
我在Mac上,我刚刚通过http://emacsformacosx.com/升级到Emacs 23.1。有一些问题,特别是缺乏全屏能力。
我试图通过安装Megazoomer来解决最后一个问题,这会添加一个绑定到Cmd-return
的全局输入管理器。这导致当前正向应用程序最大化。但是,Emacs报告<s-return> is undefined
。我以前从未见过s-[key]
,而谷歌也没有得到答案。
所以,两部分:
s-[key]
是什么意思?这纯粹是为了我的满意;和编辑:所以1)已解决,并且2)我得到:(global-set-key (kbd "<s-return>") 'ignore)
,至少可以阻止错误。然而,Emacs仍然吞下了关键组合,这并不理想。
答案 0 :(得分:22)
这是Super key,就像M-
是Meta键(PC键盘上的alt键,键盘上的Command键),C-
是Control键。
我当然从来没有真正看到过键盘上的超级钥匙......它们来自一个漫长的时代。维基百科有一个令人印象深刻的"Space Cadet keyboard"的图像,其中包含您需要的所有修饰符:
答案 1 :(得分:8)
使用Macbook Pro上的普通Emacs 23.1,我可以通过
将正确的选项键映射到super
(setq ns-right-option-modifier 'super)
您的其他选择似乎是功能键,即ns-function-modifier
。但是, fn 可能还有其他用途,而Emacs的默认设置是将ns-right-option-modifier
映射到’left
(即效果与左选项键相同,无论如何需要获得#
字符!),因此正确的选项密钥在某种程度上是多余的。
左撇子可能想要扭转这种局面。
答案 2 :(得分:2)
关于s- [key]含义的问题,在ubuntu框中它表示Windows®形状的键。在OSX系统上它意味着什么,我不知道。
至于最大化窗口,你能尝试一下吗? (它应该工作,如果OSX在它下面的某个地方运行X服务器)
(if (equal (window-system) 'x)
(progn
(defun toggle-fullscreen ()
"Toggles fullscreen"
(interactive)
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)))
(global-set-key (kbd "C-c C-y") 'x-clipboard-yank)
(global-set-key (kbd "M-RET") 'toggle-fullscreen)))
我使用这个小片段在我的* nix计算机上切换全屏。从X的剪贴板中扯下来是一种很好的能力。
至于如何设置键绑定,请使用global-set-key进行与模式无关的键绑定。 (如果您希望它是永久性的,请将其添加到.emacs文件中。)
答案 3 :(得分:1)
(setq ns-command-modifier nil)
应该做你想做的事。但是,当我测试它时,它在机器上有一些不可预测的行为,所以请注意。