在新的 urxvt 窗口中执行 vim 保留主题

在新的 urxvt 窗口中执行 vim 保留主题

我想创建一个简单的脚本来在单独的终端窗口中启动nvim(而不是gvim)(我正在使用urxvt术语)。目前我有:

#!/usr/bin/env bash

exec urxvt -hold -e "vim"

它看起来合法并且有效,但问题是打开终端时未加载 vim 主题(可能是因为.bashrc未读取或其他一些奇怪的问题)16 基壳)。

插件确实会加载,这意味着 nvim 的初始化文件已加载。我尝试做类似的事情

exec urxvt -hold -e "source <absolute_path>/.bashrc; vim"

强制 base16-shell 加载终端主题(这可能是 vim 的依赖项),但它仍然不起作用。

我觉得我错过了一些东西,但我无法把它做好。如何让这个脚本工作?

答案1

好的,所以我解决了这个问题。事实证明,-eflag 运行一个命令而没有实际启动交互的.bashrcbash shell 这意味着 bash在启动时不会读取。

base16-shell初始化终端主题(这实际上是 vim 的 base16 主题的依赖项)时,从 a 运行脚本.bashrc最终nvim会以默认颜色启动(因为依赖项未加载,并且 base16-vim 无法正确初始化)。

因此,解决方案是bash显式启动交互式 shell 来读取.bashrc和加载 base16 主题,并且仅在启动之后nvim(在我的情况下是别名vim)。

这是整个脚本:

#!/usr/bin/env bash

# -hold urxvt option is not needed as vim stays running
# -i bash option to run interactively
exec urxvt -e bash -i -c "vim"

相关内容