diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-02-22 17:56:43 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-02-22 17:56:43 +0100 |
commit | 882d02eeb571a13a502fe82a04c9eaffa630c294 (patch) | |
tree | b5a3b2e670f613526993632c19391c259c23b9c0 | |
parent | cd62512c5595fa1f7a7f2c6ec1a90ea6bde3ad50 (diff) | |
download | vim-git-882d02eeb571a13a502fe82a04c9eaffa630c294.tar.gz |
patch 8.1.0974: cannot switch from terminal window to previous tabpagev8.1.0974
Problem: Cannot switch from terminal window to previous tabpage.
Solution: Make CTRL-W gT move to previous tabpage.
-rw-r--r-- | runtime/doc/terminal.txt | 1 | ||||
-rw-r--r-- | src/testdir/test_terminal.vim | 21 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 9 |
4 files changed, 24 insertions, 9 deletions
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index 0181d18de..297f37a6f 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -81,6 +81,7 @@ Special in the terminal window: *CTRL-W_.* *CTRL-W_N* 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` + CTRL-W gT go to previous 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 ee50b570b..e5a7be5a8 100644 --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -1569,10 +1569,14 @@ func Test_terminal_termwinsize_mininmum() endfunc func Test_terminal_termwinkey() + " make three tabpages, terminal in the middle + 0tabnew + tabnext + tabnew + tabprev call assert_equal(1, winnr('$')) + call assert_equal(2, tabpagenr()) let thiswin = win_getid() - tabnew - tabnext let buf = Run_shell_in_terminal({}) let termwin = bufwinid(buf) @@ -1582,11 +1586,16 @@ func Test_terminal_termwinkey() 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()) + call assert_equal(3, tabpagenr()) + tabprev + call assert_equal(2, tabpagenr()) + call assert_equal(termwin, win_getid()) + + call feedkeys("\<C-L>gT", "xt") + call assert_equal(1, tabpagenr()) tabnext - call assert_equal(tnr, tabpagenr()) + call assert_equal(2, tabpagenr()) call assert_equal(termwin, win_getid()) let job = term_getjob(buf) @@ -1596,6 +1605,8 @@ func Test_terminal_termwinkey() set termwinkey& tabnext tabclose + tabprev + tabclose endfunc func Test_terminal_out_err() diff --git a/src/version.c b/src/version.c index cca92c8ee..cd2554a97 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 */ /**/ + 974, +/**/ 973, /**/ 972, diff --git a/src/window.c b/src/window.c index 83e3e9f93..074c731ea 100644 --- a/src/window.c +++ b/src/window.c @@ -87,10 +87,7 @@ do_window( #endif char_u cbuf[40]; - if (Prenum == 0) - Prenum1 = 1; - else - Prenum1 = Prenum; + Prenum1 = Prenum == 0 ? 1 : Prenum; #ifdef FEAT_CMDWIN # define CHECK_CMDWIN \ @@ -588,6 +585,10 @@ wingotofile: goto_tabpage((int)Prenum); break; + case 'T': // CTRL-W gT: go to previous tab page + goto_tabpage(-(int)Prenum1); + break; + default: beep_flush(); break; |