"xrdb"にコメント行の一重引用符を無視させることはできますか?

"xrdb"にコメント行の一重引用符を無視させることはできますか?

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
     ^

現在、このエラーを防ぐために、単一引用符を2倍に増やしました。

! it''s a comment

/* */代わりに使用することもできると思いました!。これは、Vimがデフォルトで使用するコメント文字列(で定義されている$VIMRUNTIME/ftplugin/xdefaults.vim)であるためです。ただし、!コメントを付けると読みやすくなるため、使用することをお勧めします。

xrdbコメント行内の一重引用符を無視するように要求する方法はありますか~/.Xresources

答え1

これは、デフォルトのプリプロセッサとして使用される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.

whileを使用すると、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

答え2

.Xresourcesコメントで一重引用符( ')をUnicodeアポストロフィ( ')に置き換えてエラーを修正しました。

持つその他Unicodeオプション(アポストロフィが機能しない場合)

関連情報