Mercurial > vim
changeset 12467:66fe20238c1d v8.0.1113
patch 8.0.1113: can go to Insert mode from Terminal-Normal mode
commit https://github.com/vim/vim/commit/eef9adddab4c7fc7bb1c54267e76849caf565edf
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 16 15:38:04 2017 +0200
patch 8.0.1113: can go to Insert mode from Terminal-Normal mode
Problem: Can go to Insert mode from Terminal-Normal mode.
Solution: Prevent :startinsert and "VA" to enter Insert mode. (Yasuhiro
Matsumoto, closes #2092)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 16 Sep 2017 15:45:03 +0200 |
parents | 2f5d2f70f891 |
children | 59348fe5c3ec |
files | src/normal.c src/version.c |
diffstat | 2 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/normal.c +++ b/src/normal.c @@ -1309,8 +1309,8 @@ normal_end: #endif #ifdef FEAT_TERMINAL - /* don't go to Insert mode from Terminal-Job mode */ - if (term_use_loop()) + /* don't go to Insert mode if a terminal has a running job */ + if (term_job_running(curbuf->b_term)) restart_edit = 0; #endif @@ -9044,7 +9044,18 @@ nv_edit(cmdarg_T *cap) /* in Visual mode "A" and "I" are an operator */ if (VIsual_active && (cap->cmdchar == 'A' || cap->cmdchar == 'I')) + { +#ifdef FEAT_TERMINAL + if (term_in_normal_mode()) + { + end_visual_mode(); + clearop(cap->oap); + term_enter_job_mode(); + return; + } +#endif v_visop(cap); + } /* in Visual mode and after an operator "a" and "i" are for text objects */ else if ((cap->cmdchar == 'a' || cap->cmdchar == 'i')