BufLeave
срабатывает при переходе в другой буфер. Ни <C-z>
, ни переключение на другую вкладку Terminal.app не вызовут этого, потому что вы используете CLI Vim, который вообще не заботится о графическом интерфейсе или среде эмулятора терминала и ... вы не покидаете свой буфер.
То же самое относится и к FocusLost
(более или менее док говорит, что это только графический интерфейс, но может работать в некоторых терминалах, не сообщая, какой из них).
Таким образом, эти настройки, вероятно, будут работать в MacVim, но определенно не в CLI Vim.
На самом деле, поскольку Vim не знает о вкладках эмулятора терминала или о том, что он находится в фоновом режиме, я сомневаюсь, что вы можете достичь своей цели в CLI Vim.
В моем ~/.vimrc
есть autocmd FocusLost * :wa
, но я поместил его в условное if has("gui_running")
, а также inoremap <Esc> <Esc>:w<CR>
, чтобы сэкономить на ESC. Надеюсь, это поможет.