![urxvt 将 esc 键映射到键序列](https://linux22.com/image/45011/urxvt%20%E5%B0%86%20esc%20%E9%94%AE%E6%98%A0%E5%B0%84%E5%88%B0%E9%94%AE%E5%BA%8F%E5%88%97.png)
这个问题是一个衍生问题在 mutt 中重新绑定“清除提示”
我经常使用 vim 键绑定,喜欢用它esc来中止命令。我现在已转移到 mutt,但无法esc在 Mutt 中绑定到“abort”(见上文)。相反,我想映射esc到esc+ Ctrl-g。我的希望是获得esc发送两个按键序列的密钥。这种方式esc是 vim 和 mutt 的通用中止键。
我已经Ctrl-g在 .vimrc 中映射到“无操作”, nmap <C-g> <nop>
因此 Vim 中没有冲突。
最好我希望在 .Xdefaults 或 .Xresources 中设置此映射,以便奇怪的+esc映射仅适用于 urxvt (我的终端 em)和在其中运行的程序。通过使其在 Xinput 或 Xmodmap 中更全局地应用,我将不得不继续关注此映射对其他(可能是非 cli)程序的作用。也就是说,欢迎任何建议:)escCtrl-g
答案1
您可以使用该keysym
资源。这要求 rxvt 已使用该选项进行编译--enable-frills
。将此行放入您的~/.Xresources
:
URxvt.keysym.Escape: \033\007
运行xrdb -merge ~/.Xresources
以重新加载资源文件。这些设置仅适用于运行后启动的程序xrdb -merge
。
如果需要,您可以根据传递给 rxvt 的参数进行不同的设置。选择一个名称,例如urxvt-mutt
;它必须以小写字母开头,并且应该以 开头,urxvt
这样就不会与其他应用程序使用的名称冲突。将此行添加到~/.Xresources
:
urxvt-mutt.keysym.Escape: \033\007
然后,当您运行时,urxvt -name urxvt-mutt
您将获得此绑定(覆盖使用 设定的任何绑定URxvt.keysym.Escape
),但是当您urxvt
不带任何-name
选项运行时,您将仅获得URxvt
绑定。