テーマを維持したまま新しい urxvt ウィンドウで vim を実行する

テーマを維持したまま新しい urxvt ウィンドウで vim を実行する

別のターミナル ウィンドウ (term を使用しています) でnvim(ではなく)を起動する簡単なスクリプトを作成したいと思います。現在、次のものがあります。gvimurxvt

#!/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 が適切に初期化できないため)。.bashrcnvim

したがって、解決策は、対話型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"

関連情報