使用Windows键在Windows的Emacs中向下翻页和向上翻页

时间:2020-03-06 14:44:46  来源:igfitidea点击:

我正在尝试学习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-vM-v
  • 不要更改C-yM-y默认绑定。

如果要将Windows密钥用作Meta,则应使用修补的EmacsW32版本。

从有关补丁的网站上:

"所做的更改使得可以在Emacs中将窗口键盘按键用作META。如果没有此修补程序键序列,则像E一样将始终执行它们在Windows中的默认设置,即在这种情况下,请打开Windows资源管理器。(不使用此修补程序默认情况下,我们必须将其打开。)"