我有一些X Resources
与EMACS
.我想删除那些 EMACS 资源吗?我该如何使用xrdb -remove
?还没有找到太多关于该怎么做的信息,甚至更少的例子?
xrdb -query -all | grep -i emacs
Emacs*Background: #000000
Emacs*Dialog*background: #000000
Emacs*Dialog*foreground: #ffffff
Emacs*Foreground: #ffffff
Emacs*XlwScrollBar.Background: #000000
Emacs*XlwScrollBar.Foreground: #ffffff
Emacs*backgroundToolBarColor: #000000
Emacs*bottomToolBarShadowColor: #000000
Emacs*menubar*background: #000000
Emacs*menubar*foreground: #ffffff
Emacs*popup*Background: #000000
Emacs*popup*Foreground: #ffffff
Emacs*topToolBarShadowColor: #000000
Emacs.default.attributeBackground: #000000
Emacs.default.attributeForeground: #ffffff
Emacs.mode-line.attributeForeground: #ffffff
Emacs.scroll-bar.attributeBackground: #000000
Emacs.scroll-bar.attributeForeground: #ffffff
Emacs.tool-bar.attributeBackground: #000000
Emacs.tool-bar.attributeForeground: #ffffff
答案1
我不相信 xrdb 作为本机功能在调用之间保留资源,因此当您注销并重新登录时,或者如果您终止 xrdb 并重新启动它时,它们应该重置。
如果它们在登录会话中不断返回,则它们可能是从您的 shell 初始化脚本中的某个位置加载的。它们通常是通过类似的方式阅读的,xrdb -load $HOME/.Xresources
但这只是惯例。
在系统上搜索您的个人和共享 rc 脚本以查找您的 shell,并在您的主目录中搜索包含资源定义的文件。
答案2
xrdb
(看源代码) 删除其术语SCREEN_RESOURCES
或 的所有 X 服务器数据XA_RESOURCE_MANAGER
。你只对后者感兴趣。删除它会比您可能想要的更多,因此您必须使用xrdb -q
它来获取当前数据,编辑它,然后重新加载它。
这不一定简单,因为资源可以有连续线。你的例子并没有做到这一点。限制于此(我认为您可能没有配置屏幕资源,因此该-all
选项是不必要的):
xrdb -q | grep -v -i emacs > foo
xrdb -load foo
参考手册页会很有帮助......
终止/重新启动xrdb
不会对 X 服务器数据产生影响。
手册页中未提及(需要一些工作),xrdb
接受所有选项的缩写,例如-query
选项可以这样给出-q
:
else if (isabbreviation("-query", arg, 2)) {
oper = OPQUERY;
continue;
}
那2
就是长度-q
。顺便说一下,它的代码为-quiet
允许相同的长度,但因为这是经过测试的后 -query
,你必须将其缩写为-qui
。