📄 00000008.htm
字号:
<BR> 通常你用一个档案当作xrdb的输入,也就是说,xrdb从一个档案载入预设 <BR>值作为你的视窗系统初始化的一部份。如果你很有经验,直接输入它的设定也 <BR>许容易些。 <BR> <BR> 查看现存资料库中的内容,输入命令: <BR> <BR> xrdb -query <BR> <BR>则xrdb将以明白本文格式(plain text format) 印出资料库的内容(-query可 <BR>以缩写为 -q )。 <BR> <BR> (你可能记得也可以在根视窗用xprop 来看资料库的内容,但xprop 的输 <BR>出格式不太灵巧,它给你其它一大堆你不需要的资讯。) <BR> <BR> 如果需要,你可以抓取xrdb的输出到一个档案,编辑它,更改设定後可再 <BR>用它当作xrdb的输入。(下一项功能告诉你一个更好的方法) <BR> <BR> 注意:查看资料库,你必须使用选项-query。如果你忽略这个选项而只输 <BR> 入xrdb,将造成会清除资料库,且xrdb在等待你自标准输入键入你 <BR> 新的设定。 <BR> <BR> 在现存资料库加入新的设定:加入新的设定到资料库且不要破坏原有的设 <BR>定,使用命令: <BR> <BR> xrdb -merge filename <BR> <BR> (-merge可缩写为-m,如果你省略档案名称,xrdb会自标准输入读取。) <BR>xrdb自指定的档案中读取resource设定,并加入现存的资料库中;对於资料库 <BR>中已存在的resource,如果有新的设定,旧值会为新值取代,否则则不会变动。 <BR> <BR> 完全移去资料库:如同先前所述,当系统结束时资料库会自动消失,但如 <BR>果你在系统仍在执行时移去资料库,使用命令: <BR> <BR> xrdb -remove <BR> <BR> 本节介绍xrdb基本的功能,下一节我们介绍当你熟悉系统时,你可能需要 <BR>的更进一步的功能。 <BR> <BR>16.2.3 xrdb的档案格式 <BR> <BR> 你已知道大多数的格式细节 -- 你可以用标准的resource规格的形式 <BR> <BR> characteristic: value <BR> <BR> 上述的格式你已看过多次,但xrdb有两个额外的规则: <BR> <BR> 1 .注解(comments):每一行的开头如果是惊叹号(!)会被忽略,所以 <BR> 你可以此当作注解。 <BR> <BR> 2 .xrdb预设将它的输入列传到C 前处理器。 <BR> <BR> 让我们进一步看一看前处理器的过程。 <BR> <BR>xrdb前处理它的输入列 <BR> <BR> 让我们看一看一个你可能碰到的典型问题。假设在一般的场景,你使用下 <BR>列显示器: <BR> <BR> venus 彩色萤幕,正常解析度 <BR> saturn 单色萤幕,正常解析度 <BR> mars 彩色萤幕,高解析度 <BR> <BR> 以上三者共享一个共同网路档案系统,当你在一个显示器上启动X,你需 <BR>要定义预设值来反应显示器的特徵。例如:在高解析度萤幕你可能需要较大的 <BR>预设字型,或是你不需要在单色系统上定义彩色预设值。 <BR> <BR> 如何做呢?让我们看一看,如果你能使用.Xdefaults-host 档案:在 <BR>.Xdefaults-venus我们包含了彩色指定,而在.Xdefaults-saturn 我们只放入 <BR>单色型态的参数。行得通吗?当然,但是是有限度的:它只能掌握应用程式在 <BR>和server相同的机器上执行,如果应用程式在其它的机器上执行会得到它们主 <BR>机上的预设档案。所以如果你使用venus 且在saturn启始远方的client,将会 <BR>用到.Xdefault-saturn而错失所有的彩色指定。 <BR> <BR> 你能够只使用.Xdefault 档案来区分机器吗?不能,因为三台主机共享相 <BR>同的档案系统,所以$HOME/.Xdefaults会被venus 获得也会被其它的机器获得。 <BR> <BR> 答案是在resource处理程序的某些地方,有一个结构可以分辨出所使用 <BR>server的某些特徵。xrdb可以用相当简单的办法做到这点,它先定义一些说明 <BR>server特徵的C 前处理器符号,而後将它所有的输入传递到前处理器,最後将 <BR>处理过的资料载入资料库。指南页列出所有的xrdb定义的前处理器的符号,但 <BR>在此处我们需要用到的是: <BR> <BR> X_RESOLUTION=n:n是每公尺长萤幕有多少像素。(根据我们的server,我 <BR>们正常解析度的萤幕为每□90个像素,相当於每公尺3454个像素。) <BR> <BR> COLOR :只有萤幕支援彩色才被定义。 <BR> <BR> WIDTH,HEIGHT:萤幕的宽度和高度,单位为像素。 <BR> <BR> 图16-1显示我们如何在xrdb的输入档案使用这些。(我们命名为 <BR>$HOME/.Xresources ,稍後我们仍将再度用到。)它可以正确地做到我们所想 <BR>要的 -- 它正确掌握了所有我们的显示器,不论是彩色或高解析度或两者都有。 <BR> <BR> 一些要点值得注意: <BR> <BR> ┌—————————————————————┐ <BR> │ P197 FIG 16.1 │ <BR> │ │ <BR> │ 图16-1 利用前处理器命令的Resource档案 │ <BR> └—————————————————————┘ <BR> <BR> .你可以使用所有前处理器的功能。例如,我们使用它的表示掌握 <BR> (expression-handling) 能力: <BR> <BR> #if X_RESOLUTION > 3600 <BR> <BR> .你可以在档案中任何地方使用前处理器符号,并不只是前面有# 号的列, <BR> 例如,当 <BR> <BR> xload*Width: WIDTH <BR> <BR> 在venus 上xrdb执行到时,它将会读取成: <BR> <BR> xload:Width: 1152 <BR> <BR> 所以由预设值可知,xload 视窗宽度将和萤幕宽度相同,高为80个像素, <BR>且在萤幕的正上方。 <BR> <BR> 注意:大多数Unix前处理器定义了一些和它们机器结构与作业系统相关的 <BR> 符号,这些可能会干扰到你,特别是Unix通常定义的符号,现在 <BR> xrdb定义HOST为显示器名称中主机名称的部份,所以你可能认为你 <BR> 可以像这样使用一个resource规格: <BR> <BR> demo*title: X demo using display HOST <BR> <BR> 比方在venus 上,预期它相当於: <BR> <BR> demo*title: X demo using display venus <BR> <BR> 事实上,在我们的机器上会得到 <BR> <BR> demo*title: X demo using display 1 <BR> <BR> 原因为显示器名称是unix:0.0,所以主机名称部份为unix,但前处 <BR> 理器已定义了unix,所以整个解释的顺序为: <BR> <BR> HOST -> unix -> 1 <BR> <BR> 你可以用xrdb的-u选项来解除符号的定义,用以克服这点,也就是 <BR> <BR> xrdb -Unix < filename <BR> <BR> 但即使如此,主机名称仍为unix,除非你明确地指定显示器: <BR> <BR> xrdb -display venus:0 < filename <BR> <BR> 另一个会产生干扰的范例,如何你输入规格 <BR> <BR> xedit*Font: *-sun-screen-* <BR> <BR> 使用xrdb,现在用一个xrdb -query ,你可以看到在资料库中实际 <BR> 地设定: <BR> <BR> xedit*Font: *-1-screen-* <BR> <BR> 在我们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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -