diff options
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r-- | src/nvim/edit.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 6bcf5e804a..427623e052 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -254,7 +254,16 @@ edit ( ) { if (curbuf->terminal) { - terminal_enter(); + if (ex_normal_busy) { + // don't enter terminal mode from `ex_normal`, which can result in all + // kinds of havoc(such as terminal mode recursiveness). Instead, set a + // flag that allow us to force-set the value of `restart_edit` before + // `ex_normal` returns + restart_edit = 'i'; + force_restart_edit = true; + } else { + terminal_enter(); + } return false; } |