![在新的 urxvt 視窗中執行 vim 保留主題](https://rvso.com/image/109225/%E5%9C%A8%E6%96%B0%E7%9A%84%20urxvt%20%E8%A6%96%E7%AA%97%E4%B8%AD%E5%9F%B7%E8%A1%8C%20vim%20%E4%BF%9D%E7%95%99%E4%B8%BB%E9%A1%8C.png)
我想創建一個簡單的腳本來在單獨的終端視窗中啟動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"