通过在命令行中附加 -xrm 参数,可以将资源传递给 X 应用程序。因此,如果我希望 Xmessage 背景为灰色,我可以发出xmessage Hi -xrm "xmessage*background: grey"
.
如果我想修改事件翻译,事情就会变得棘手。在我的.Xresouces
,这个
Xmessage*Translations:#override\
<Key>F10:exit(-1) \n\
<Key>q:exit(-1)
设置成功F10和q键退出任何 Xmessage 窗口,但我在命令行中使用 -xrm 时遇到困难,当然是因为换行符和转义反斜杠。
我尝试了以下三个命令,但没有成功。
xmessage Hi -xrm "xmessage*Translations:#override <Key>s:exit(4)
<Key>r:exit(3)
<Key>p:exit(2)"
xmessage Hi -xrm "xmessage*Translations:#override\
<Key>s:exit(4)\n\
<Key>r:exit(3)\n\
<Key>p:exit(2)"
xmessage Hi -xrm "xmessage*Translations:#override <Key>s:exit(4)" \
-xrm "xmessage*Translations:#override <Key>r:exit(3)" \
-xrm "xmessage*Translations:#override <Key>p:exit(2)"
第三条命令仅成功分配最后一个键。其他的失败了,尽管我希望第一个能够工作,因为它在之后插入了一个换行符退出(4)和退出(3),通过回显命令来确认。
我缺少什么以及如何纠正它?
答案1
您需要放入单引号:
xmessage Hi -xrm 'xmessage*Translations:#override\
<Key>F10:exit(-1) \n\
<Key>q:exit(-1)'
否则,换行符就会丢失。