Vim: возвратитесь к командному режиму, когда фокус будет потерян

Мне нравится, когда моя энергия вовлекает себя в командный режим максимально часто. Я думаю, теряя фокус, было бы хорошее событие, чтобы заставить это произойти. Все, что я нашел, для того, чтобы экономить на потерянном фокусе.

Я хотел бы, чтобы это автовозвратилось к cmd режиму при переключении вкладок в macvim или когда cmd+tabbing к другому приложению.

6
задан devth 3 June 2010 в 18:00
поделиться

1 ответ

Следующая автокоманда была бы "очевидным" выбором.

au FocusLost,TabLeave * stopinsert

К сожалению, похоже, что она работает правильно только для TabLeave. Событие FocusLost срабатывает, но по какой-то причине команда stopinsert не вступает в силу до тех пор, пока не будет получено событие от клавиши после того, как Vim восстановит фокус.

Вместо этого вы можете воспользоваться feedkeys и командой "Переведите меня в нормальный режим, несмотря ни на что!" комбинацией клавиш:

au FocusLost,TabLeave * call feedkeys("\<C-\>\<C-n>")

Единственный минус в том, что feedkeys() требует как минимум Vim 7. Однако это не должно быть большой проблемой, поскольку Vim 7 был выпущен еще в 2006 году.

17
ответ дан 8 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: