在emacs中,右ALT键无法作为元键使用

3

我在控制台(Ctrl+Alt+F1)中启动了emacs (emacs -Q)。"左 Alt 键"可以使用,而"右 Alt 键"无法使用。如何解决这个问题。我正在archlinux上运行emacs。


你能更具体一些吗?你想要实现什么?当按下“右Alt键”时,你期望的行为是什么?而你实际得到了什么? - Matthias
我期望“右Alt键”也能像Ubuntu中的Meta键一样起作用。 - Talespin_Kit
当我按下“右ALT键+X”时,似乎没有影响到“右ALT键”,因此X被打印在当前缓冲区中。 - Talespin_Kit
3个回答

3

这种行为受您所使用的键盘布局控制。在您使用的布局中,左Alt键是Meta,而右Alt键是Alt-graphic,它允许您输入带重音的字符。更改您的键盘布局为不使用右Alt键作为Alt-graphic的布局。


在Ubuntu中,“Right ALT-x”将在Mini缓冲区中提示M-x。如何获得相同的行为? - Talespin_Kit
这与您使用的键盘布局有关。 - Nicolas Dudebout
4
这是一个非常好的解释为什么会发生这种情况,但并没有说明如何解决它。 - tacaswell

1
这里描述了解决方案:
http://www.joshstaiger.org/archives/2005/04/fixing_the_righ.html 但是需要进行一些修改(请参见下面的3.2项)。 否则,第一次按下[右Alt]后,当前控制台将无法输入任何内容。 如果您遇到此问题,请切换到其他控制台(例如[Ctrl+Alt+F2])并恢复旧键映射。
以下是修改后的解决方案的简要说明:
  1. 将当前按键映射保存到文件中:
    dumpkeys >> mykmap
    并备份它:
    cp mykmap oldkmap
  2. 使用showkey命令捕获[Right Alt]键的键值代码。假设它是100
  3. 编辑mykmap
    1. 找到相应的行:
      keycode 100 = AltGr
      并将其改为:
      keycode 100 = Alt
    2. 如果下一行(或其中一行)是:
      alt keycode 100 = Compose
      则删除它。
  4. 加载新的按键映射:
    loadkeys mykmap
  5. 使更改永久生效(例如,将最后一个命令添加到~/.bashrc中)。

0

有一个解决方法。在emacs中,按下Esc键以将alt键激活为元键。 因此,像M-v这样的命令就变成了Esc M-v


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接