我使用rxvt-unicode版本9.22作为终端仿真器,并使用文件~/.Xresources对其进行配置。
当我修改配置文件时,要立即看到效果,请执行以下命令:
xrdb ~/.Xresources来自man xrdb:
以感叹号(!)开头的行将被忽略,并可用作注释。
在我的机器上,使用xrdb版本的1.1.0,当注释行包含奇数单引号(例如! it's a comment )时,xrdb会发出一个错误,例如:
/home/user/.Xresources:1:5: warning: missing terminating ' character
! it's a comment
^目前,为了避免此错误,我将单引号加倍:
! it''s a comment我认为我也可以使用/* */,而不是!,因为它是Vim默认使用的注释字符串(在$VIMRUNTIME/ftplugin/xdefaults.vim中定义)。但是我更喜欢使用!,因为我发现它的注释更易读。
有没有办法让xrdb忽略~/.Xresources注释行中的单引号?
发布于 2017-06-24 22:09:54
这似乎是由于GNU cpp的默认行为发生了变化,xrdb将其用作其默认的预处理器。具体来说,根据C预处理: 10.1传统词法分析:
一般来说,在传统的模式下,开场白不必有一个匹配的收尾报价。
但是,cpp提供了一个命令行选项,可以在传统模式下操作:
-traditional
-traditional-cpp
Try to imitate the behavior of pre-standard C preprocessors, as opposed to ISO
C preprocessors. See Traditional Mode.而xrdb允许在其命令行上显式地定义预处理器:
-cpp filename
This option specifies the pathname of the C preprocessor pro‐
gram to be used. Although xrdb was designed to use CPP, any
program that acts as a filter and accepts the -D, -I, and -U
options may be used.因此,应该可以通过使用
xrdb -cpp "/usr/bin/cpp -traditional-cpp" ~/.Xresources或
xrdb -cpp "/usr/bin/cpp -traditional" ~/.Xresources发布于 2021-01-14 02:14:09
我通过在.Xresources注释中用Unicode撇号(')替换单引号(‘)来解决这个错误。
如果撇号不适合您,则有其他 Unicode选项。
https://unix.stackexchange.com/questions/373187
复制相似问题