1

最近我开始使用&喜爱urxvt,因为它有大量的选项和透明的特性。

不幸的是,某些键映射Vimurxvt.

例如,我已将 和 分别映射Ctrl + Up/DownShift + Up/Down5 条 10 行向上/向下移动或Ctrl + Left/Right1 个单词向左/向右移动。

这些移动命令在 中确实可以正常工作xterm,但它们拒绝在 中工作urxvt:它们切换到插入模式并粘贴a,b或作为我的 vim 的输入cd

为什么会这样?

我还zsh用作我的外壳并映射Ctrl + Left/Right到向左/向右移动 1 个单词zsh:这也停止了工作urxvt(同时仍在工作xterm)。

我怎样才能urxvt正确映射键?

4

2 回答 2

5

从问题的描述中,您可能忽略了 urxvt 中的关键定义与 xterm 不同的事实。除非您特别配置 urxvt,否则当您使用 shift、control、alt 修改它们时,它的特殊键(光标键和键盘键)会发送与 xterm 不同的转义序列。

您可以使用 urxvt 发送的转义序列,也可以使用该keysym功能配置 urxvt 以发送类似的转义序列。此功能由 rxvt 引入,并通过 urxvt 进行了扩展,以允许您指定修改器(移位、控制等),您可能希望限制keysym应用:

键符。sym : string
编译装饰:将字符串与keysym sym关联。介入的资源名称keysym。不能省略。

sym的格式为“(modifiers-)key”,其中修饰符可以是 ISOLevel3、AppKeypad、Control、NumLock、Shift、Meta、Lock、Mod1、Mod2、Mod3、Mod4、Mod5 以及缩写的I, K, C,的任意组合N, S, M, A, L, 1, 2, 3, 4, 5.

“编译装饰”暗示它是一个可选功能。然而,大多数打包者似乎都打开了它的所有选项(除了它们冲突的地方)。所以它可能对你可用。

ncurses FAQ 中有一个主题(转义序列)的概述如何使用移位或控制修饰符?(顺便说一下,vim 不使用终端数据库中的 ncurses 或修饰符信息——它是一个termcap应用程序——但这是一个不同的问题)。

于 2017-01-17T23:22:41.813 回答
1

在 vim 中,您可以拥有:

set t_ku=^[OA
set t_kd=^[OB
set t_kr=^[OC
set t_kl=^[OD

(让^[OA你按ctrl-v然后up

我也使用 urxvt,因为它很快,我不使用透明度功能。在urxvt您可能想要设置选项 keysym.sym: action阅读手册页以获取更多详细信息。

建议

  • 如果您使用 vim,请使用 vim 动作, ctrl-U/D/F/BwWeEbB... 您根本不需要箭头键。例如在我的键盘上,按箭头键我必须按一个额外的Fn键.. 太贵了,我的手指不得不离开本垒打。

  • 在终端,我建议你习惯于emacs-binding编辑命令行,你的单词跳转会是:alt-b (back) and alt-f(forward)还有很多,很常用:ctrl-f, c-h, c-w, a-w,c-b,c-u,c-k,a-. etc .....还有人不应该忘记c-xc-e

于 2017-01-17T10:04:36.197 回答