"xrdb"가 주석 줄의 작은따옴표를 무시하도록 할 수 있습니까?

"xrdb"가 주석 줄의 작은따옴표를 무시하도록 할 수 있습니까?

rxvt-unicode버전을 9.22터미널 에뮬레이터로 사용 하고 파일을 사용하여 구성합니다 ~/.Xresources.

구성 파일을 수정할 때 즉시 효과를 확인하기 위해 다음 명령을 실행합니다.

xrdb ~/.Xresources

에서 man xrdb:

느낌표(!)로 시작하는 줄은 무시되며 주석으로 사용할 수 있습니다.

내 컴퓨터에서 xrdbversion 을 사용할 때 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?

답변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 주석에서 작은따옴표(')를 유니코드 아포스트로피(')로 바꾸어 오류를 해결했습니다.

가지다다른유니코드 옵션(아포스트로피가 작동하지 않는 경우)

관련 정보