使用Windows键在Windows的Emacs中向下翻页和向上翻页
我正在尝试学习Emacs,并尝试为我找到最佳的键盘布局。一件事真的让我讨厌。我在.emacs中添加了以下几行
(global-set-key "\C-y" 'scroll-up) (global-set-key "\M-y" 'scroll-down)
当我按住Control并按几次y时,每次按y都会向下翻页。
但是,当我按住Windows键(映射为" Meta")并按几次y时,它将仅在第一次按y和随后的所有按y时才向上翻页,我得到y字符插入缓冲区。
向上翻页的行为可以像向下翻页的行为吗?我想按住" Meta"并按住" y"向上滚动多页。
我正在LENNART-69DE564(已修补)上使用2008-05-12的GNU Emacs 23.0.60.1(i386-mingw-nt5.1.2600)。它是带有EmacsW32补丁的Emacs。这是Emacs的问题吗?元密钥有问题吗?
我尝试了原始的GNU Emacs(未打补丁),并且可以与Alt
一起使用。但是我的问题不是我想滚动而不释放任何键。我释放了键y并按了多次,但又不想释放Meta键。此处描述了相同的问题:
http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/f30f4b75a8b75b10
问题不在于我已更改了键映射。看来这是EmacsW32版本中的错误。这是问题的另一种描述:
未发布的Meta / Win修改器
解决方案
使用Windows键作为Meta可能会有副作用吗?我在想这是因为在非Emacs情况下,如果按住Windows键和另一个快捷键(Win + E for Explorer,Win + R for Run对话框等),则所需操作仅触发一次,如果我们一直按住它,则不会多次。
我尝试将Meta重新分配给Alt,看看问题是否仍然存在。如果没有,那么我不确定我们还有什么其他选择,因为可能是操作系统仅将Windows按键发送一次到关注的应用程序。
- 使用
C-v
和M-v
。 - 不要更改
C-y
,M-y
默认绑定。
如果要将Windows密钥用作Meta,则应使用修补的EmacsW32版本。
从有关补丁的网站上:
"所做的更改使得可以在Emacs中将窗口键盘按键用作META。如果没有此修补程序键序列,则像E一样将始终执行它们在Windows中的默认设置,即在这种情况下,请打开Windows资源管理器。(不使用此修补程序默认情况下,我们必须将其打开。)"