【问题标题】:Caps lock rebound to ctrl generates Ctrl-Shift in emacs大写锁定反弹到 ctrl 在 emacs 中生成 Ctrl-Shift
【发布时间】:2017-10-05 22:09:47
【问题描述】:

我已将我的 caps lock 键反弹为一个额外的 ctrl 键,但在 emacs 中使用反弹键会生成 C-S 组合键。按 caps-p 生成序列 C-S-p,而使用 ctrl 键执行相同操作生成 C-p。

这会导致一些奇怪的行为,例如 C-n 和 C-p 设置一个标记,然后突出显示我经过的区域。

我没有更改 X 中 caps 键的定义,而是使用我的窗口管理器 (Cinnamon) 中内置的设置。这可能是导致问题的原因,还是此键的预期行为?

【问题讨论】:

  • 你不需要重新绑定大写锁定来产生这种效果,我想。我有同样的效果,只要大写锁定被激活,C-p C-n 就变成 C-s-p。不幸的是,我对键盘的处理方式知之甚少,无法找到正确的解决方案。这里有一些指针(和一个丑陋的解决方案)emacs.1067599.n5.nabble.com/…

标签: emacs


【解决方案1】:

This的问题大概是相关的,基本上就是直接用xmodmap来设置key。当我将大写锁定设置为控制时,它对我有用,我想我当时使用的是 gnome3 classic(Cinammon 的基础)。

在相关说明中,我还建议您查看space2ctrl,我发现一直伸手去拿大写锁定仍然会伤到我的手指。

【讨论】:

    【解决方案2】:

    我正在华硕笔记本电脑上运行 CrunchBang 10 “Statler”(源自 Debian 6 “Squeeze”)
    (是的,我现在有点落后)

    我目前拥有 GNU Emacs 23.2.1。在我使用 xmodmap 将其重新映射到 Ctrl 之前,它甚至无法将 Caps Lock 键识别为按键。

    所以我首先创建了文件 ~/.Xmodmap:

    ! attempting to redefine the <Caps Lock> key to do <Ctrl>                      
    remove Lock = Caps_Lock                                                        
    add Control = Caps_Lock                                                        
    

    显然 Debian 使用 .xsession,而不是 ..xinitrc。

    文件 .xsession 是窗口管理器 (Openbox) 使用 exec 启动的地方
    我在 exec 之前插入了 xmodmap 调用:

    #!/bin/sh                                                                      
    # gonna modify the keys so <Caps Lock> is <Ctrl>                               
    xmodmap /home/tom/.Xmodmap
    
    exec openbox-session
    

    Caps Lock 键似乎与 Ctrl 键一样工作
    现在在 Emacs 中。

    【讨论】:

      【解决方案3】:

      我之前也遇到过这个问题,我的键盘与 CTRL 键有问题。也许你也有同样的问题。

      【讨论】:

      • 我怀疑您将不得不进一步挖掘。我将从一些基本工具开始:xev 会告诉你当你按下键时会生成什么键码。 xmodmap 将允许您添加和删除修饰符。在他们两个之间,您应该能够进行一些实验并弄清楚发生了什么。
      猜你喜欢
      • 2010-10-25
      • 2012-08-21
      • 2013-03-06
      • 2011-01-07
      • 2015-01-23
      • 2011-03-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多