Commit: patch 9.2.0267: 'autowrite' not triggered for :term

7 views
Skip to first unread message

Christian Brabandt

unread,
Mar 29, 2026, 10:02:18 AM (3 days ago) Mar 29
to vim...@googlegroups.com
patch 9.2.0267: 'autowrite' not triggered for :term

Commit: https://github.com/vim/vim/commit/466b5f531a9818d4fa834126d64e8b771e4a497f
Author: rendcrx <9744...@qq.com>
Date: Sun Mar 29 09:20:34 2026 +0000

patch 9.2.0267: 'autowrite' not triggered for :term

Problem: 'autowrite' not triggered for :term
Solution: Trigger autowrite for :term command
(rendcrx)

closes: #19855

Signed-off-by: rendcrx <9744...@qq.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 5f30fb715..f17f6259d 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 9.2. Last change: 2026 Mar 23
+*options.txt* For Vim version 9.2. Last change: 2026 Mar 29


VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1031,7 +1031,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
Write the contents of the file, if it has been modified, on each
`:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,
- `:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when
+ `:suspend`, `:tag`, `:!`, `:make`, `:terminal`, CTRL-] and CTRL-^ command; and when
a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one
to another file.
A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is
diff --git a/src/terminal.c b/src/terminal.c
index 8140da55f..ecb0b52b3 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -810,6 +810,11 @@ ex_terminal(exarg_T *eap)
int opt_shell = FALSE;
char_u *cmd;
char_u *tofree = NULL;
+ int scroll_save = msg_scroll;
+
+ msg_scroll = FALSE; // don't scroll here
+ autowrite_all();
+ msg_scroll = scroll_save;

init_job_options(&opt);

diff --git a/src/testdir/test_terminal3.vim b/src/testdir/test_terminal3.vim
index 7cf727e49..263b5f309 100644
--- a/src/testdir/test_terminal3.vim
+++ b/src/testdir/test_terminal3.vim
@@ -1218,4 +1218,15 @@ func Test_term_getpos()
bw
endfunc

+func Test_term_autowrite()
+ set autowrite
+ new termautowritetestfile
+ call setline(1, 'test content')
+ term echo "test"
+ call assert_equal(['test content'], readfile('termautowritetestfile'))
+ call delete('termautowritetestfile')
+ bwipe!
+ set noautowrite
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 5a1fd0cd7..d2797c237 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 267,
/**/
266,
/**/
Reply all
Reply to author
Forward
0 new messages