我想创建一个简单的脚本来在单独的终端窗口中启动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
好的,所以我解决了这个问题。事实证明,-e
flag 运行一个命令而没有实际启动交互的.bashrc
bash 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"