長らく放置していた以下の問題

  • vimでファイルを開いている際に、裏で IntelliJ Idea や、 VSCode やらで編集しても自動再リロードがかからない

以下の設定をしていた。

" 元のファイルの変更を Vim が検知し、かつバッファが変更されていなかった場合、バッファは自動的に再読み込み
set autoread

もう少し処理を足して checktime を自動発行すればよいことがわかったので、以下を追加したけど動作しなかった

" 以下タイミングで、checktime を実行
" WinEnter: ウィンドウがアクティブになった時
" FocusGained: ウィンドウがアクティブになった時
" BufEnter: バッファがアクティブになった時
augroup auto-checktime
  autocmd!
  autocmd WinEnter,FocusGained,BufEnter * checktime
augroup END

色々調べるうちに FocusGained イベントが発行されていない事を確認

イベントが発行されない原因を調査中以下コメントを発見

Tmux のフォーカスイベント検知設定を有効にしてなかった。

以下を tmux.conf についかして無事解決

tmux.conf
set-option -g focus-events on

Refs