Vimがautocmdを終了するかどうかを検出する

Vimがautocmdを終了するかどうかを検出する

autocmdがあり、BufWritePostバッファに書き込むたびにそれを実行したいと思います。しかし、Vimが終了しようとしたとき。

この変数は、シグナルv:dyingのためにVimが生きているかどうかを示すため、実際には役に立ちません。しかし、私は通常のシャットダウンも検出したいと思います。だから私は次のようなものを探しています。

au BufWritePost * if ! s:do_we_quit() | Neomake | endif

s:do_we_quit()しかし、これまで私はテストを書く方法がわかりません。

コンテキスト::Neomakeautocmdは私のファイルに対して構文チェックとリンターの実行を呼び出し、それをクイックフィックス/ロケーションリストにロードします。しかし、これは明らかにon:wではなくonでのみ意味があります:wq。通常は非同期で動作しますが、vimがシャットダウンしたときに停止して待機しても何らかの方法で無限ループに陥るようNeomakeです。Neomake

ベストアンサー1

あなたが探しているものQuitPre

let s:quitting = 0
autocmd QuitPre      * let s:quitting = 1
autocmd BufWritePost * if ! s:quitting | Neomake endif

これは最近Vim(QuitPreVim 7.3.544に追加)を実行していると仮定します。

無限ループのバグレポートを投稿する必要があります。

おすすめ記事