Мне нравится, когда моя энергия вовлекает себя в командный режим максимально часто. Я думаю, теряя фокус, было бы хорошее событие, чтобы заставить это произойти. Все, что я нашел, для того, чтобы экономить на потерянном фокусе.
Я хотел бы, чтобы это автовозвратилось к cmd режиму при переключении вкладок в macvim или когда cmd+tabbing к другому приложению.
Следующая автокоманда была бы "очевидным" выбором.
au FocusLost,TabLeave * stopinsert
К сожалению, похоже, что она работает правильно только для TabLeave. Событие FocusLost срабатывает, но по какой-то причине команда stopinsert не вступает в силу до тех пор, пока не будет получено событие от клавиши после того, как Vim восстановит фокус.
Вместо этого вы можете воспользоваться feedkeys и командой "Переведите меня в нормальный режим, несмотря ни на что!" комбинацией клавиш:
au FocusLost,TabLeave * call feedkeys("\<C-\>\<C-n>")
Единственный минус в том, что feedkeys()
требует как минимум Vim 7. Однако это не должно быть большой проблемой, поскольку Vim 7 был выпущен еще в 2006 году.