{
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);
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')