2

我正在尝试学习 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 修饰符

4

3 回答 3

5
  1. 使用C-vM-v
  2. 不要更改C-yM-y默认绑定。
于 2008-11-16T12:38:43.393 回答
4

这可能是使用 Windows 键作为 Meta 的副作用吗?我在想这是因为在非 Emacs 情况下,如果您按住 Windows 键和另一个快捷键(Win+E 用于资源管理器,Win+R 用于运行对话框等),所需的操作只会触发一次,如果您一直按住它,则不会多次。

我会尝试将 Meta 重新分配给 Alt,看看问题是否仍然存在。如果没有,那么我不确定您还有什么其他选项,因为很可能是操作系统仅将 Windows 按键一次发送到焦点应用程序。

于 2008-09-25T21:55:23.533 回答
0

如果您希望 Windows 键作为 Meta,您应该使用修补过的 EmacsW32 版本。

从关于补丁的网站:

“使得可以在 Emacs 中将窗口键盘键用作 META 的更改。没有此修补程序键序列,如 E 将始终执行它们在 Windows 中默认执行的操作,即在这种情况下打开 Windows 资源管理器。(未使用此修补程序默认情况下,您必须将其打开。)”

于 2008-11-16T13:30:00.483 回答