Mercurial > vim
changeset 32437:bdbaaed04acd v9.0.1550
patch 9.0.1550: in cmdline window S-Tab does not select previous completion
Commit: https://github.com/vim/vim/commit/81f277f52664031a56aeabe889f1c36402316dba
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat May 13 13:55:09 2023 +0100
patch 9.0.1550: in cmdline window S-Tab does not select previous completion
Problem: In cmdline window S-Tab does not select previous completion.
(Maxim Kim)
Solution: Add a mappint for S-Tab. (closes #12116)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 13 May 2023 15:00:04 +0200 |
parents | bbdfe818dc0f |
children | f67f4f91eeaf |
files | src/ex_getln.c src/testdir/test_cmdwin.vim src/version.c |
diffstat | 3 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4486,8 +4486,12 @@ open_cmdwin(void) { if (p_wc == TAB) { + // Make Tab start command-line completion: CTRL-X CTRL-V add_map((char_u *)"<buffer> <Tab> <C-X><C-V>", MODE_INSERT, TRUE); add_map((char_u *)"<buffer> <Tab> a<C-X><C-V>", MODE_NORMAL, TRUE); + + // Make S-Tab work like CTRL-P in command-line completion + add_map((char_u *)"<buffer> <S-Tab> <C-P>", MODE_INSERT, TRUE); } set_option_value_give_err((char_u *)"ft", 0L, (char_u *)"vim", OPT_LOCAL);
--- a/src/testdir/test_cmdwin.vim +++ b/src/testdir/test_cmdwin.vim @@ -359,6 +359,22 @@ func Test_compl_in_cmdwin() set wildmenu& wildchar& endfunc +func Test_cmdwin_cmd_completion() + set wildmenu wildchar=<Tab> + com! -nargs=* -complete=command SomeOne echo 'one' + com! -nargs=* -complete=command SomeTwo echo 'two' + call feedkeys("q:aSome\<Tab>\<Home>\"\<CR>", 'tx') + call assert_equal('"SomeOne', @:) + call feedkeys("q:aSome\<Tab>\<Tab>\<Home>\"\<CR>", 'tx') + call assert_equal('"SomeTwo', @:) + call feedkeys("q:aSome\<Tab>\<Tab>\<S-Tab>\<Home>\"\<CR>", 'tx') + call assert_equal('"SomeOne', @:) + + delcom SomeOne + delcom SomeTwo + set wildmenu& wildchar& +endfunc + func Test_cmdwin_ctrl_bsl() " Using CTRL-\ CTRL-N in cmd window should close the window call feedkeys("q:\<C-\>\<C-N>", 'xt')