diff src/testdir/test_termcodes.vim @ 22764:d03221aa54f3 v8.2.1930

patch 8.2.1930: wrong input if removing shift results in special key code Commit: https://github.com/vim/vim/commit/749bc9521d9c1b3b3250faef25a3710206cf277d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 31 16:33:47 2020 +0100 patch 8.2.1930: wrong input if removing shift results in special key code Problem: Wrong input if removing shift results in special key code. Solution: Handle special key codes. (closes https://github.com/vim/vim/issues/7189)
author Bram Moolenaar <Bram@vim.org>
date Sat, 31 Oct 2020 16:45:03 +0100
parents 6325ef9143bc
children bc3a083b50cb
line wrap: on
line diff
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -2029,6 +2029,23 @@ func Test_modifyOtherKeys_mapped()
   set timeoutlen&
 endfunc
 
+" Whether Shift-Tab sends "ESC [ Z" or "ESC [ 27 ; 2 ; 9 ~" is unpredictable,
+" both should work.
+func Test_modifyOtherKeys_shift_tab()
+  set timeoutlen=10
+
+  call setline(1, '')
+  call feedkeys("a\<C-K>" .. GetEscCodeCSI27("\t", '2') .. "\<Esc>", 'Lx!')
+  eval getline(1)->assert_equal('<S-Tab>')
+
+  call setline(1, '')
+  call feedkeys("a\<C-K>\<Esc>[Z\<Esc>", 'Lx!')
+  eval getline(1)->assert_equal('<S-Tab>')
+
+  set timeoutlen&
+  bwipe!
+endfunc
+
 func RunTest_mapping_works_with_shift(func)
   new
   set timeoutlen=10