comparison src/testdir/test_map_functions.vim @ 30007:4123e4bd1708 v9.0.0341

patch 9.0.0341: mapset() does not restore <Nop> mapping properly Commit: https://github.com/vim/vim/commit/92a3d20682d46359bb50a452b4f831659e799155 Author: zeertzjq <zeertzjq@outlook.com> Date: Wed Aug 31 16:40:17 2022 +0100 patch 9.0.0341: mapset() does not restore <Nop> mapping properly Problem: mapset() does not restore <Nop> mapping properly. Solution: Use an empty string for <Nop>. (closes https://github.com/vim/vim/issues/11022)
author Bram Moolenaar <Bram@vim.org>
date Wed, 31 Aug 2022 17:45:03 +0200
parents 86eb4aba16c3
children 360f286b5869
comparison
equal deleted inserted replaced
30006:13cdb8fb6414 30007:4123e4bd1708
181 inoremap <Char-0xf040> d 181 inoremap <Char-0xf040> d
182 execute "normal a\uf040\<Esc>" 182 execute "normal a\uf040\<Esc>"
183 call assert_equal("abcd", getline(1)) 183 call assert_equal("abcd", getline(1))
184 endfunc 184 endfunc
185 185
186 func One_mapset_test(keys) 186 func One_mapset_test(keys, rhs)
187 exe 'nnoremap ' .. a:keys .. ' original<CR>' 187 exe 'nnoremap ' .. a:keys .. ' ' .. a:rhs
188 let orig = maparg(a:keys, 'n', 0, 1) 188 let orig = maparg(a:keys, 'n', 0, 1)
189 call assert_equal(a:keys, orig.lhs) 189 call assert_equal(a:keys, orig.lhs)
190 call assert_equal('original<CR>', orig.rhs) 190 call assert_equal(a:rhs, orig.rhs)
191 call assert_equal('n', orig.mode) 191 call assert_equal('n', orig.mode)
192 192
193 exe 'nunmap ' .. a:keys 193 exe 'nunmap ' .. a:keys
194 let d = maparg(a:keys, 'n', 0, 1) 194 let d = maparg(a:keys, 'n', 0, 1)
195 call assert_equal({}, d) 195 call assert_equal({}, d)
196 196
197 call mapset('n', 0, orig) 197 call mapset('n', 0, orig)
198 let d = maparg(a:keys, 'n', 0, 1) 198 let d = maparg(a:keys, 'n', 0, 1)
199 call assert_equal(a:keys, d.lhs) 199 call assert_equal(a:keys, d.lhs)
200 call assert_equal('original<CR>', d.rhs) 200 call assert_equal(a:rhs, d.rhs)
201 call assert_equal('n', d.mode) 201 call assert_equal('n', d.mode)
202 202
203 exe 'nunmap ' .. a:keys 203 exe 'nunmap ' .. a:keys
204 endfunc 204 endfunc
205 205
206 func Test_mapset() 206 func Test_mapset()
207 call One_mapset_test('K') 207 call One_mapset_test('K', 'original<CR>')
208 call One_mapset_test('<F3>') 208 call One_mapset_test('<F3>', 'original<CR>')
209 call One_mapset_test('<F3>', '<lt>Nop>')
209 210
210 " Check <> key conversion 211 " Check <> key conversion
211 new 212 new
212 inoremap K one<Left>x 213 inoremap K one<Left>x
213 call feedkeys("iK\<Esc>", 'xt') 214 call feedkeys("iK\<Esc>", 'xt')
223 call assert_equal({}, d) 224 call assert_equal({}, d)
224 225
225 call mapset('i', 0, orig) 226 call mapset('i', 0, orig)
226 call feedkeys("SK\<Esc>", 'xt') 227 call feedkeys("SK\<Esc>", 'xt')
227 call assert_equal('onxe', getline(1)) 228 call assert_equal('onxe', getline(1))
229
230 iunmap K
231
232 " Test that <Nop> is restored properly
233 inoremap K <Nop>
234 call feedkeys("SK\<Esc>", 'xt')
235 call assert_equal('', getline(1))
236
237 let orig = maparg('K', 'i', 0, 1)
238 call assert_equal('K', orig.lhs)
239 call assert_equal('<Nop>', orig.rhs)
240 call assert_equal('i', orig.mode)
241
242 inoremap K foo
243 call feedkeys("SK\<Esc>", 'xt')
244 call assert_equal('foo', getline(1))
245
246 call mapset('i', 0, orig)
247 call feedkeys("SK\<Esc>", 'xt')
248 call assert_equal('', getline(1))
228 249
229 iunmap K 250 iunmap K
230 251
231 " Test literal <CR> using a backslash 252 " Test literal <CR> using a backslash
232 let cpo_save = &cpo 253 let cpo_save = &cpo