urxvt 将 esc 键映射到键序列

urxvt 将 esc 键映射到键序列

这个问题是一个衍生问题在 mutt 中重新绑定“清除提示”

我经常使用 vim 键绑定,喜欢用它esc来中止命令。我现在已转移到 mutt,但无法esc在 Mutt 中绑定到“abort”(见上文)。相反,我想映射escesc+ 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绑定。

相关内容