diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-02-22 16:09:52 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-02-22 16:09:52 +0100 |
commit | 72e83c1ae535e2ebc35b114d34d0a811eb62b068 (patch) | |
tree | e3d6124987eff7f8a154d07b5b054c219494858b | |
parent | f6b401090e816b4216f783a9b85d21d9ad134ff8 (diff) |
patch 8.1.0972: cannot switch from terminal window to next tabpagev8.1.0972
Problem: Cannot switch from terminal window to next tabpage.
Solution: Make CTRL-W gt move to next tabpage.
-rw-r--r-- | runtime/doc/terminal.txt | 3 | ||||
-rw-r--r-- | src/testdir/test_terminal.vim | 12 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 6 |
4 files changed, 21 insertions, 2 deletions
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index da89be4362..0181d18def 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1,4 +1,4 @@ -*terminal.txt* For Vim version 8.1. Last change: 2019 Feb 16 +*terminal.txt* For Vim version 8.1. Last change: 2019 Feb 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -80,6 +80,7 @@ Special in the terminal window: *CTRL-W_.* *CTRL-W_N* Also works with the = register to insert the result of evaluating an expression. CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C| + CTRL-W gt go to next tabpage, same as `gt` See option 'termwinkey' for specifying another key instead of CTRL-W that will work like CTRL-W. However, typing 'termwinkey' twice sends 'termwinkey' diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim index 32cc212563..ee50b570b2 100644 --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -1571,6 +1571,8 @@ endfunc func Test_terminal_termwinkey() call assert_equal(1, winnr('$')) let thiswin = win_getid() + tabnew + tabnext let buf = Run_shell_in_terminal({}) let termwin = bufwinid(buf) @@ -1578,12 +1580,22 @@ func Test_terminal_termwinkey() call feedkeys("\<C-L>w", 'tx') call assert_equal(thiswin, win_getid()) call feedkeys("\<C-W>w", 'tx') + call assert_equal(termwin, win_getid()) + + let tnr = tabpagenr() + call feedkeys("\<C-L>gt", "xt") + call assert_notequal(tnr, tabpagenr()) + tabnext + call assert_equal(tnr, tabpagenr()) + call assert_equal(termwin, win_getid()) let job = term_getjob(buf) call feedkeys("\<C-L>\<C-C>", 'tx') call WaitForAssert({-> assert_equal("dead", job_status(job))}) set termwinkey& + tabnext + tabclose endfunc func Test_terminal_out_err() diff --git a/src/version.c b/src/version.c index 7c424e0d0a..bd49a512ce 100644 --- a/src/version.c +++ b/src/version.c @@ -780,6 +780,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 972, +/**/ 971, /**/ 970, diff --git a/src/window.c b/src/window.c index c4b543de39..83e3e9f935 100644 --- a/src/window.c +++ b/src/window.c @@ -67,7 +67,7 @@ static win_T *win_alloc(win_T *after, int hidden); static char *m_onlyone = N_("Already only one window"); /* - * all CTRL-W window commands are handled here, called from normal_cmd(). + * All CTRL-W window commands are handled here, called from normal_cmd(). */ void do_window( @@ -584,6 +584,10 @@ wingotofile: nchar = xchar; goto wingotofile; #endif + case 't': // CTRL-W gt: go to next tab page + goto_tabpage((int)Prenum); + break; + default: beep_flush(); break; |