📄 00000005.htm
字号:
在我们sun 的机器上,前处理器定义成另一个符号。如果你使用和你的机 <BR>器相关的名称,你可能也会得到相同的效应。(如果你决定不需要前处理器的 <BR>功能,你可以用xrdb的-nocpp选项停止它的功能。) <BR> <BR> <BR> 16.2.4 如何将资料库设定和你的xrdb输入档连接在一起 <BR> <BR> 藉著像前述在一个含有大量前处理器命令的档案执行xrdb,你初始化了资 <BR>料库,在稍後的期间,交谈式的使用xrdb,你将对资料库做大量的更动,现在 <BR>你需要记录这些设定,且将之与原来的输入档连接,以备将来之用。 <BR> <BR> 如果你只使用xrdb -query ,你只能获得目前的设定:所有在输入档中的 <BR>条件指令列若和现在的server不符则不会被包含。例如在saturn上执行前述的 <BR>档案,则所有色彩和高解析度的设定,均被忽略(当然以 #开头的也不例外), <BR>为了克服这点,xrdb提供-edit 选项,例如命令: <BR> <BR> xrdb -edit myresf <BR> <BR>连接目前在资料库中的值到档案myresf内存在的内容,它藉著比对resource指 <BR>定特徵值的部份做到这点:如果在档案中某一行和资料库中某一项特徵相同, <BR>则档案中值的部份会被在资料库中的值取代,用此方法,所有的以 #开头的列 <BR>和条件设定均会保留在档案中。 <BR> <BR> 注意:前处理器完全不可以使用-edit 选项,那会导致问题,我们看一 <BR> 下当我们使用venus ,且以前述档案初始化资料库时,会发生什麽 <BR> 情况,假设我们做了更动: <BR> <BR> venus% xrdb -merge <BR> XTerm*font: *-courier-medium-r-*-140-* <BR> <end-of-file> <BR> <BR> 然後用命令: <BR> <BR> xrdb -edit myresf <BR> <BR> 将设定更改的部份放回档案,我们看到两件事: <BR> <BR> 1 .前处理器符号在规格中值的部份会被字面(literal)值取代, <BR> 例如: <BR> <BR> xload*Width: 1152 会被 <BR> <BR> xload*Width: WIDTH 取代 <BR> <BR> 2 .在规格中只要特性符合,值均会被取代,甚至那些在条件段中 <BR> 目前尚未应用到的也不例外。例如,在前述档案,设定 <BR> XTerm*font的那两行(一行在高解析度那段,一行在正常显示 <BR> 器那段)都会被更改,即使我们只需要改变正常显示器也不例 <BR> 外。 <BR> <BR> <BR>16.3 一些常见的错误和如何修正它们 <BR> <BR> 特别是当你对系统是新手的时候,resource看起来相当的复杂。当有些状 <BR>况不能正常执行,而系统无法帮助你查觉是什麽错误,或你在何处犯了错误, <BR>这里列出一些常见错误的明细,并提出如何修正它们。 <BR> <BR> .如果你未设定一个应用程式的名称和类别,确定在你的resource规格之 <BR> 前加一个星号,(如果你省略这个星号,将没有任何东西会对应这个规 <BR> 格)这个错误在你使用-xrm时特别常见,例如: <BR> <BR> xclock -xrm "update:3" (错误) <BR> xclock -xrm "*update:3" (正确) <BR> <BR> .并非所有的应用程式均使用Toolkit ,非Toolkit 的程式不使用类别, <BR> 且它们的属性名称也可能不同。例如,规格 <BR> <BR> *geometry: 300*400+500+600 <BR> <BR> 对xclock,xlogo 有效,但对xcalc 无效,因它不使用Toolkit ,xcalc <BR> 使用属性名称Geometry(开头为大写的G ),因为在这种情况,Toolkit <BR> 类别名称和xcalc 的属性名称相同,所以单独一个规格 <BR> <BR> *Geometry: 300*400+500+600 <BR> <BR> 可以对所有这类的应用程式有效。 <BR> <BR> .你可能在规格中用了错误的属性或Widget的名称,特别是容易把类别名 <BR> 称和成员名称搞混,例如:以下两者均错: <BR> <BR> xclock*Update: 10 <BR> xclock*interval: 10 <BR> <BR> 其它常见的错误如: <BR> <BR> xterm*Text*background:blue <BR> <BR> 它不能执行的原因为xterm 并未使用Text widget ,xterm 正常的视窗 <BR> 和Tektronix 的视窗分别使用widget类别 VT100和Tek 。最後,当你 <BR> 知道一个widget是什麽类别,你可能对成员名称假设错误,不是widget <BR> 本身便是其中之一的属性。试著更换类别名称来修正这个问题。 <BR> <BR> .即使你已设定实际的widget和属性名称或类别,应用程式可能以不是你 <BR> 预期的方式使用它们。例如:你可能设定如下: <BR> <BR> xterm*Width: 40 <BR> xterm*Height: 10 <BR> <BR> 意图用比平常较小的视窗启动xterm ,但它不能执行,xterm 只能在 <BR> Tektronix window应用这些值,无法在正常的视窗。 <BR> <BR> .你可能所有的设定完全正确,但仍然什麽也没发生,例如: <BR> <BR> xmh -xrm "*inc.Label: Include" <BR> <BR> 是一个正确的方式,执行xmh 并指定label 为inc 盒的必须被"Include"。 <BR> 但在标准系统的发行版,是没有任何动作发生的,原因是xmh 有一个应 <BR> 用程式设定预设值档案/usr/lib/X11/app-defaults/Xmh ,其中有一行: <BR> <BR> xmh*inc.label:Incorporate New Mail <BR> <BR> 这个规格较我们的设定有较高优先。 <BR> <BR> .将规格 <BR> <BR> *Width: 200 <BR> <BR> 单独包含在资料库将导致大多数的Toolkit 程式启始失败,且有一个 <BR> 讯息说它的"shell widget has zero height or width" 。如果你设定 <BR> height和width 二者之一,你必须也设定另外一个。 <BR> <BR> .如果你用编辑器建立一个resource档案,你可能省略了最後一个new line <BR> 这将导致当你试图用xrdb载入它时整个档案均被忽略。为了避免如此, <BR> 当载入resource时,用一个命令列像: <BR> <BR> xrdb resfile; xrdb -query <BR> 如果xrdb无法列印出resfile 中的内容,就是有问题了。 <BR> <BR> .你可能忘了用-xrm选项的引数来获得resource规格,有时有人会把 <BR> resource规格放入一个档案,而以档案名称为-xrm的引数,预期它自此 <BR> 档案中读取resources。 <BR> <BR> .最後,一个非常人性的错误,当你发生问题,你通常会循环动作:编辑 <BR> resource档案... 储存它... 载入resource到资料库... 执行应用程式 <BR> 和看一看发生什麽状况。”其中载入resource到资料库”常常会被忽略 <BR> 以致你更为困惑。 <BR> <BR>16.4 结论 <BR> <BR> 本章中,你已看过了所有你能设定resource的地方,为何有这麽多种的方 <BR>法,如何决定设定放置在何处。你看到如何使用xrdb程式在server实际地储存 <BR>预设值,它们在何处被server所有的client存取,甚至它们可以在远方的机器 <BR>上执行。最後,有一些关於常见错误的实际提示,告诉你什麽需要注意。 <BR> <BR> 你现在处於实际使用resources ,和剪裁你的系统适合你的口味,resource <BR>结构功能非常强大且有无限的弹性,所以它可让你定制任何你需要的事。刚开 <BR>始不妨试一些像字型或色彩之类简单的设定,当你熟於基本的结构时,再转到 <BR>更高水准的例子。 <BR> <BR> 下一章将告诉你如何使用特别形式的resource规格 -- Translations(转 <BR>译),来剪裁你的键盘以适於特别的应用程式。 <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -