diff options
author | Shougo Matsushita <Shougo.Matsu@gmail.com> | 2015-12-19 10:03:17 +0900 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-01-13 01:56:36 -0500 |
commit | 3dfbeabf35dbfe5494a4adce7b4d94d56bbe0171 (patch) | |
tree | f3b6f3c95a1e1b20545798e94a88d774bca8b1ea /test/functional/legacy/mapping_spec.lua | |
parent | 420fe1fe73153cc7407a770fc2d6ee85ff490bff (diff) | |
download | rneovim-3dfbeabf35dbfe5494a4adce7b4d94d56bbe0171.tar.gz rneovim-3dfbeabf35dbfe5494a4adce7b4d94d56bbe0171.tar.bz2 rneovim-3dfbeabf35dbfe5494a4adce7b4d94d56bbe0171.zip |
vim-patch:7.4.569/573
vim-patch:7.4.569
vim-patch:7.4.573
Helped-by: @glts https://github.com/neovim/neovim/pull/2621
Problem: Having CTRL-C interrupt or not does not check the mode of the
mapping. (Ingo Karkat)
Solution: Use a bitmask with the map mode. (Christian Brabandt)
https://github.com/vim/vim/commit/651863c94a882a97aec7968fc87a638ff78e56ff
Problem: Mapping CTRL-C in Visual mode doesn't work. (Ingo Karkat)
Solution: Call get_real_state() instead of using State directly.
https://github.com/vim/vim/commit/5000869712f799d9ca25c0e45dc21d332edae5f4
Diffstat (limited to 'test/functional/legacy/mapping_spec.lua')
-rw-r--r-- | test/functional/legacy/mapping_spec.lua | 50 |
1 files changed, 46 insertions, 4 deletions
diff --git a/test/functional/legacy/mapping_spec.lua b/test/functional/legacy/mapping_spec.lua index 4d377904f9..f0cef3773d 100644 --- a/test/functional/legacy/mapping_spec.lua +++ b/test/functional/legacy/mapping_spec.lua @@ -2,12 +2,12 @@ local helpers = require('test.functional.helpers') local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert -local execute, expect = helpers.execute, helpers.expect +local execute, expect, wait = helpers.execute, helpers.expect, helpers.wait describe('mapping', function() before_each(clear) - it('is working', function() + it('abbreviations with р (0x80)', function() insert([[ test starts here: ]]) @@ -16,6 +16,49 @@ describe('mapping', function() execute('inoreab чкпр vim') feed('GAчкпр <esc>') + expect([[ + test starts here: + vim ]]) + end) + + it('works with Ctrl-c in Insert mode', function() + -- Mapping of ctrl-c in insert mode + execute('set cpo-=< cpo-=k') + execute('inoremap <c-c> <ctrl-c>') + execute('cnoremap <c-c> dummy') + execute('cunmap <c-c>') + feed('GA<cr>') + feed('TEST2: CTRL-C |') + wait() + feed('<c-c>A|<cr><esc>') + wait() + execute('unmap <c-c>') + execute('unmap! <c-c>') + + expect([[ + + TEST2: CTRL-C |<ctrl-c>A| + ]]) + end) + + it('works with Ctrl-c in Visual mode', function() + -- Mapping of ctrl-c in Visual mode. + execute([[vnoremap <c-c> :<C-u>$put ='vmap works']]) + feed('GV') + -- For some reason the mapping is only triggered when <C-c> is entered in a + -- separate feed command. + wait() + feed('<c-c>') + wait() + feed('<cr>') + execute('vunmap <c-c>') + + expect([[ + + vmap works]]) + end) + + it('works with Ctrl-c in Insert mode with langmap', function() -- langmap should not get remapped in insert mode. execute('inoremap { FAIL_ilangmap') execute('set langmap=+{ langnoremap') @@ -37,8 +80,7 @@ describe('mapping', function() -- Assert buffer contents. expect([[ - test starts here: - vim + + + + |