aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/mapping_spec.lua
diff options
context:
space:
mode:
authorShougo Matsushita <Shougo.Matsu@gmail.com>2015-12-19 10:03:17 +0900
committerJustin M. Keyes <justinkz@gmail.com>2016-01-13 01:56:36 -0500
commit3dfbeabf35dbfe5494a4adce7b4d94d56bbe0171 (patch)
treef3b6f3c95a1e1b20545798e94a88d774bca8b1ea /test/functional/legacy/mapping_spec.lua
parent420fe1fe73153cc7407a770fc2d6ee85ff490bff (diff)
downloadrneovim-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.lua50
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
+
+
+
+