URxvt:vim 和 cursorColor

URxvt:vim 和 cursorColor

介绍

我一直使用浅色背景的终端和深色背景的编辑器(vim)。在这一点上我不愿意妥协。无论如何,我刚刚从切换xtermurxvt($TERM == rxvt-unicode-256color),主要是因为 xterm 中未解决的 fontconfig/xft 字体截断错误,以及 urxvt 正确重新排列文本的能力(不过还有其他优点,所以请不要盲目建议切换终端)。不幸的是,我在 urxvt 上有一个无法解决的问题:vim 中的光标颜色是不可见的。让我用每个终端的默认行为来解释:

X终端:

  • 光标颜色默认为底层文本的前景色,因此会有所不同。如果没有底层文本,则默认为前景色(通常为白色或黑色)
  • 光标下的文本颜色被拉到背景颜色(通常为黑色或白色)
  • XTerm 忽略“#000000”的 cursorColor 设置,而是使用默认行为

因此,只有当光标颜色与背景颜色尽可能接近时,光标下的文本在 XTerm 中才不可见。

URxvt:

  • 光标颜色默认为黑色。
  • 光标下的文本颜色被拉成白色。

因此,仅当光标颜色为白色时,光标下的文本在 URxvt 中才不可见

回到问题:

URxvt 光标在 vim 中不可见,因为我使用的是深色配色方案(黑色背景上的黑色光标)。我无法将光标颜色更改为白色,~/.Xdefaults因为我使用的是浅色背景的终端,这会导致白色背景中的白色光标出现在白色文本上:光标和字体都看不见。但是,虽然 vim 通常不支持更改光标颜色,但使用一点点黑客行为~/.vimrc成为可能。遗憾的是,白色或浅色光标会导致文本不可见或至少难以辨认。

概述

不可见光标:

  • 解释:黑色背景上的黑色光标。
  • 解决方案:将光标颜色改为白色(或更浅的颜色)
  • 问题:导致文本不可见(或文本更难阅读)

不可见文本:

  • 解释:白色光标位于白色文本上
  • 解决方案: ????

解决方案

我希望 URxvt 可以支持 XTerm 的 cursorColor/cursorTextColor 行为,或者至少支持修改光标下文本的颜色,当然我也愿意接受其他解决方案。

相关内容