web-dev-qa-db-ja.com

neovimにその構成を再読み込みするように通知

暗いカラースキームと明るいカラースキームを切り替えるスクリプトがあります。私が使用するターミナルエミュレーター(シロアリ)は、信号USR1を受信すると構成を再読み取りするため、カラースキームを切り替えると、USR1をすべてのシロアリインスタンスに送信して、カラースキームがすぐに更新されるようにします。

(neovimの外部から)その構成を再読み込みするようにneovimを説得する可能性はありますか?

Neovimがunixシグナルで作成するもののリストを実際に見つけることができませんでした。また、neovimには「サーバー」と「フロントエンド」の概念があることを理解している限り、シグナルである必要はありません。したがって、各サーバーに接続し、構成を再ロードするために発行するようなものも機能すると思います。

1
syntonym

リモート機能 を介してvimをリモートで制御できます。 neovimの場合、 neovim-remote を見つけました。これにより、すでに実行中のnvimプロセスにコマンドを簡単に送信できます。次のスニペットは、すべてのnvimプロセス(neovim-remoteによって検出されます)を反復処理し、構成ファイルを取得するコマンドを送信します。

for path in $(nvr --nostart --serverlist)
do
  nvr --nostart --servername $path -cc 'so ~/.config/nvim/init.vim'
done

これは、構成が~/.config/nvim/init.vimに存在することを前提としています。構成が別のファイルにある場合は、そこで置き換える必要があります。異なる構成がロードされた異なるnvimがある場合(たとえば、異なる構成ファイルをロードする-u <configfile>フラグを介して)、このスクリプトはそれを無視し、各インスタンスに同じ構成をロードするように命令します。 nvr --c 'so $MYVIMRC'は機能するはずだと思いますが、私にはうまくいきませんでした。

最初の--nostartはおそらく不要ですが、害はありません。

0
syntonym

ほとんどの解決策 ここneovimでも機能するはずです。

* nixを使用しているので、最初に試すのはおそらく次のとおりです。:so ~/.vimrc

0
user1794469