我经常使用 vim 工作,并决定切换到 cli 版本,我选择它是xterm
因为它是我所知道的唯一可以正确识别Alt快捷方式的终端(而且我有很多绑定在 vim 中的终端)。
我的问题是xterm
启动时不加载配置文件。我将其保存.Xresources
在我的主目录中的文件中(我也尝试将其内容移至.Xdefaults
但无济于事)。当我输入时,xrdb .Xresources
它会正常加载所有设置,输入也会xrdb -query -all
显示正确的终端设置。我尝试在文件和 Openbox 自动运行中包含该行.xinitrc
(我在 Crunchbang 发行版中工作,它是主窗口管理器),但它也不起作用。
谁能指出我如何解决这个问题的正确方向?
我的.Xresources
文件如下所示:
!XTerm*termName: xterm-256color
!UXTerm*termName: xterm-256color
! Colors
*background: #181818
*foreground: #c0c0c0
*cursorColor: #93a1a1
!! black dark/light
*color0: #121212
*color8: #2e3436
!! red dark/light
*color1: #a35b66
*color9: #ab6b74
!! green dark/light
*color2: #99ab6f
*color10: #acb972
!! yellow dark/light
*color3: #ca9733
*color11: #ccaa69
!! blue dark/light
*color4: #495d6e
*color12: #687987
!! magenta dark/light
*color5: #825969
*color13: #977381
!! cyan dark/light
*color6: #839191
*color14: #98a4a4
!! white dark/light
*color7: #e0e0e0
color15: #e5e5e5
!-------------------------------------------------------------------------------
*multiClickTime: 500
! Use a nice truetype font and size by default...
! Every shell is a login shell by default (for inclusion of all necessary environment variables)
xterm*loginshell: true
! I like a LOT of scrollback...
xterm*savelines: 16384
UXTerm*faceSize: 8
UXTerm*cursorBlink: true
! double-click to select whole URLs :D
xterm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48
! right hand side scrollbar...
xterm*rightScrollBar: false
xterm*ScrollBar: false
! stop output to terminal from jumping down to bottom of scroll again
xterm*scrollTtyOutput: false
答案1
检查xterm
运行时处理哪些文件。通常这些包括:
$HOME/.Xdefaults-`hostname`
{$HOME,/etc/X11/app-defaults}/{<locale-full>,<locale-lang>,}/XTerm{,-color}
检查输出strace xterm
以获得系统的完整列表。
我的猜测是你需要这样做ln -s ~/.Xdefaults ~/.Xdefaults-$(hostname)
。
您可能还想通过两种方式整理 .Xdefaults 文件:
- 选择帽子样式并保持一致
- 在整个设置中使用类似
xterm*
或 的前缀VT100*
一个好主意也可能是为每个应用程序的 Xresources创建一个简单的.Xdefaults
文件,即:#includes
#include <path/to/XTerm.xresources>
#include <path/to/UXTerm.xresources>
#include <path/to/whatever_else.xresources>
因为它的扩展性更好。
答案2
类似的设置*background: #181818
适用于使用 X 资源的所有应用程序中所有小部件中的所有背景颜色。但是,如果应用程序在某处对其小部件有显式设置,则此更具体的设置将覆盖常规设置*background
。在实践中,像这样的一般设置*background
是没有用的。
中的所有条目~/.Xresources
都应以应用程序的类名开头。这通常是带有首字母大写的程序名称。对于 xterm(包括支持 Unicode 的 xterm,除非您运行的是古董),类名称是XTerm
。所以将你的更改~/.Xresources
为
XTerm*background: #181818
XTerm*foreground: #c0c0c0
XTerm*cursorColor: #93a1a1
…
如果这仍然不起作用,请尝试更具体的设置,明确列出您要更改的小部件:
XTerm.VT100.background: #181818
XTerm.VT100.foreground: #c0c0c0
XTerm.VT100.cursorColor: #93a1a1
…
如果您使用xterm
(小写) 而不是XTerm
,则这些设置仅在您使用实例名称运行程序(xterm 或任何其他)时应用xterm
,但在运行例如时则不适用xterm -name foo
。
哦,还有不设置loginShell
:在每个终端中运行一个登录 shell,这会导致比它解决的问题更多的问题。无论如何,您需要为整个会话设置环境变量,而不是在每个终端中设置。