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
フラグは実際には開始せずにコマンドを実行することがわかりました。インタラクティブ.bashrc
bash shellこれはbashが起動時に読み取られないことを意味します。
base16-shell
ターミナルテーマ(実際にvimのbase16テーマへの依存関係)を初期化するときにスクリプトを実行すると、デフォルトの色.bashrc
でnvim
実行されます(依存関係がロードされず、base16-vimが正しく初期化されないため)。
したがって、解決策は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"