Mercurial > vim
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 |