2014-12-23 04:24:54 -07:00
|
|
|
|
-- 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()
|
2015-09-07 19:27:21 -07:00
|
|
|
|
before_each(clear)
|
2014-12-23 04:24:54 -07:00
|
|
|
|
|
|
|
|
|
it('is working', function()
|
|
|
|
|
insert([[
|
|
|
|
|
test starts here:
|
|
|
|
|
]])
|
|
|
|
|
|
|
|
|
|
-- Abbreviations with р (0x80) should work.
|
|
|
|
|
execute('inoreab чкпр vim')
|
2015-02-18 09:16:30 -07:00
|
|
|
|
feed('GAчкпр <esc>')
|
2014-12-23 04:24:54 -07:00
|
|
|
|
|
2014-12-26 08:49:44 -07:00
|
|
|
|
-- langmap should not get remapped in insert mode.
|
|
|
|
|
execute('inoremap { FAIL_ilangmap')
|
|
|
|
|
execute('set langmap=+{ langnoremap')
|
|
|
|
|
feed('o+<esc>')
|
|
|
|
|
|
2015-07-21 06:11:56 -07:00
|
|
|
|
-- Insert mode expr mapping with langmap.
|
2014-12-26 08:49:44 -07:00
|
|
|
|
execute('inoremap <expr> { "FAIL_iexplangmap"')
|
|
|
|
|
feed('o+<esc>')
|
|
|
|
|
|
2015-07-21 06:11:56 -07:00
|
|
|
|
-- langmap should not get remapped in cmdline mode.
|
|
|
|
|
execute('cnoremap { FAIL_clangmap')
|
|
|
|
|
feed('o+<esc>')
|
|
|
|
|
execute('cunmap {')
|
|
|
|
|
|
|
|
|
|
-- cmdline mode expr mapping with langmap.
|
|
|
|
|
execute('cnoremap <expr> { "FAIL_cexplangmap"')
|
|
|
|
|
feed('o+<esc>')
|
|
|
|
|
execute('cunmap {')
|
2015-02-18 09:16:30 -07:00
|
|
|
|
|
2014-12-23 04:24:54 -07:00
|
|
|
|
-- Assert buffer contents.
|
|
|
|
|
expect([[
|
|
|
|
|
test starts here:
|
2015-02-18 09:16:30 -07:00
|
|
|
|
vim
|
2014-12-26 08:49:44 -07:00
|
|
|
|
+
|
2015-07-21 06:11:56 -07:00
|
|
|
|
+
|
|
|
|
|
+
|
2014-12-26 08:49:44 -07:00
|
|
|
|
+]])
|
2014-12-23 04:24:54 -07:00
|
|
|
|
end)
|
2015-09-07 19:27:21 -07:00
|
|
|
|
|
|
|
|
|
it('i_CTRL-G_U', function()
|
|
|
|
|
-- <c-g>U<cursor> works only within a single line
|
|
|
|
|
execute('imapclear')
|
|
|
|
|
execute('imap ( ()<c-g>U<left>')
|
|
|
|
|
feed('G2o<esc>ki<cr>Test1: text with a (here some more text<esc>k.')
|
|
|
|
|
-- test undo
|
|
|
|
|
feed('G2o<esc>ki<cr>Test2: text wit a (here some more text [und undo]<c-g>u<esc>k.u')
|
|
|
|
|
execute('imapclear')
|
|
|
|
|
execute('set whichwrap=<,>,[,]')
|
|
|
|
|
feed('G3o<esc>2k')
|
|
|
|
|
execute([[:exe ":norm! iTest3: text with a (parenthesis here\<C-G>U\<Right>new line here\<esc>\<up>\<up>."]])
|
|
|
|
|
|
|
|
|
|
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)
|
2014-12-23 04:24:54 -07:00
|
|
|
|
end)
|