-- Test for mappings and abbreviations local helpers = require('test.functional.helpers') local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert local execute, expect = helpers.execute, helpers.expect describe('mapping', function() before_each(clear) it('is working', function() insert([[ test starts here: ]]) -- Abbreviations with р (0x80) should work. execute('inoreab чкпр vim') feed('GAчкпр ') -- langmap should not get remapped in insert mode. execute('inoremap { FAIL_ilangmap') execute('set langmap=+{ langnoremap') feed('o+') -- Insert mode expr mapping with langmap. execute('inoremap { "FAIL_iexplangmap"') feed('o+') -- langmap should not get remapped in cmdline mode. execute('cnoremap { FAIL_clangmap') feed('o+') execute('cunmap {') -- cmdline mode expr mapping with langmap. execute('cnoremap { "FAIL_cexplangmap"') feed('o+') execute('cunmap {') -- Assert buffer contents. expect([[ test starts here: vim + + + +]]) end) it('i_CTRL-G_U', function() -- U works only within a single line execute('imapclear') execute('imap ( ()U') feed('G2okiTest1: text with a (here some more textk.') -- test undo feed('G2okiTest2: text wit a (here some more text [und undo]uk.u') execute('imapclear') execute('set whichwrap=<,>,[,]') feed('G3o2k') execute([[:exe ":norm! iTest3: text with a (parenthesis here\U\new line here\\\."]]) expect([[ Test1: text with a (here some more text) Test1: text with a (here some more text) Test2: text wit a (here some more text [und undo]) new line here Test3: text with a (parenthesis here new line here ]]) end) end)