重新加载.Xresources而无需重新启动xterm

51

为了在vim中使用ALT键而不需要调整设置,应该在xterm中禁用转义。 如果不禁用转义,bash中的快捷键将无法使用ALT。

为了解决这个问题,我需要在启动vim之前重新加载这个选项:

XTerm*metaSendsEscape: false | xrdb -load 

有什么方法可以在不重新启动终端窗口的情况下重新加载 .Xresource 并使更改生效吗?
打开其他终端以使 ALT 在 vim 和 bash 中均可使用。


try xrdb ~/.Xresource - henices
这与 cat .Xresource | xrdb -load 相同,需要终端重启。 - Nabil Sham
4个回答

99

这将重新加载.Xresources

xrdb ~/.Xresources

来源: Arch wiki


14
这个回答应该被删除,因为它与问题无关。 - Thomas Dickey
15
@ThomasDickey 这个问题是在谷歌搜索“reload Xresources”时的第一个结果。 - Daerdemandt
10
你的意思是什么?如果你在谷歌搜索“不重新启动xterm重新加载xresources”,那么这也是第一个结果。 - stewSquared
4
这个答案已经在问题的评论中被提出并被拒绝。它不能在不重新启动任何程序的情况下工作。 - Keinstein
2
我将问题中的内容传输到了xrdb -load,这相当于这个操作。显然我已经尝试过这个方法。 - Nabil Sham
显示剩余2条评论

15
xterm不会因为运行xrdb而重新读取资源。只有在应用程序初始化时才会读取资源。
除了菜单条目(在补丁#122,1999中添加),还可以使用另外两种方法来更改metaSendsEscape资源:
  • 转义序列,详见XTerm 控制序列

    CSI ? Pm h DEC 私有模式设置 (DECSET)。 ... Ps = 1 0 3 6 -> 当 Meta 修改键时发送 ESC。 (启用 metaSendsEscape 资源)。

  • editres (但由于资源数量众多而非常繁琐)


4

太好了,刚刚检查了一下,XTerm的菜单中有这个选项!我记得在那里看到过...

当你按住Ctrl键时,XTerm对于左、中(也称为滚轮)和右键单击都会响应,并分别显示选项菜单。

在你的情况下,“Meta Sends Escape”在ctrl+左键单击菜单中 :)

此外,检查所有三个菜单(即使只是为了了解选项的存在)是一个非常好的主意。例如,我经常使用字体选择器。


2

我不得不将 xterm*metaSendsEscape: true 添加到 .Xdefaults 中,在16.04版本下使用 .Xresources 不能正常工作。

接着执行 xrdb ~/.Xdefaults 命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接