Vim

urxvt 將 esc 鍵映射到鍵序列

  • January 13, 2020

這個問題是mutt 中重新綁定“明確提示”的一個衍生問題

我經常使用 vim 鍵綁定,並且喜歡使用esc來中止命令。我現在搬到了 mutt,但在 Mutt 中無法綁定esc到“中止”(見上文)。相反,我想映射escesc+ Ctrl-g。我希望獲得esc發送兩個密鑰序列的密鑰。這種方式esc是 vim 和 mutt 的一種通用中止鍵。

我已經映射Ctrl-g到 .vimrc 中的“無操作”, nmap <C-g> <nop>因此在 Vim 中沒有衝突。

最好我希望在 .Xdefaults 或 .Xresources 中設置此映射,以便奇怪esc的到esc+Ctrl-g映射僅適用於 urxvt(我的終端 em)和在其中執行的程序。通過使其在 Xinput 或 Xmodmap 中更全域地應用,我將不得不繼續關注此映射對其他(可能是非 cli)程序的作用。也就是說,歡迎任何建議:)

您可以使用該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綁定。

引用自:https://unix.stackexchange.com/questions/83211