![テーマを維持したまま新しい urxvt ウィンドウで vim を実行する](https://rvso.com/image/109225/%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E7%B6%AD%E6%8C%81%E3%81%97%E3%81%9F%E3%81%BE%E3%81%BE%E6%96%B0%E3%81%97%E3%81%84%20urxvt%20%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%A7%20vim%20%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B.png)
別のターミナル ウィンドウ (term を使用しています) でnvim
(ではなく)を起動する簡単なスクリプトを作成したいと思います。現在、次のものがあります。gvim
urxvt
#!/usr/bin/env bash
exec urxvt -hold -e "vim"
合法的に機能しているように見えますが、問題はターミナルを開いたときにvimテーマが読み込まれないことです(おそらく.bashrc
読み込まれていないか、その他の奇妙な問題があるためです)。ベース16シェル)。
プラグインはロードされますが、これはnvimのinitファイルがロードされることを意味します。私は次のようなことを試しました。
exec urxvt -hold -e "source <absolute_path>/.bashrc; vim"
base16-shell にターミナル テーマ (vim のテーマに依存している可能性があります) を強制的にロードするようにしましたが、それでも機能しません。
何かが足りないような気がしますが、うまくいきません。このスクリプトを動作させるにはどうしたらいいでしょうか?
答え1
問題は解決しました。-e
フラグは実際には起動せずにコマンドを実行することが判明しました。相互の作用bash シェルは、起動時に bash が読み取らないことを意味します.bashrc
。
ターミナル テーマ (これは実際には vim の base16 テーマの依存関係です) を初期化すると、最終的base16-shell
にスクリプトが実行され、デフォルトの色で起動されます (依存関係が読み込まれず、base16-vim が適切に初期化できないため)。.bashrc
nvim
したがって、解決策は、対話型bash
シェルを明示的に起動して.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"