aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/getchar.c2
-rw-r--r--src/nvim/testdir/test_mapping.vim7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 167898bb1e..2fe732d6f4 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -3249,6 +3249,8 @@ int buf_do_map(int maptype, MapArguments *args, int mode, bool is_abbrev, buf_T
mpp = &(mp->m_next);
continue;
}
+ // In keyround for simplified keys, don't unmap
+ // a mapping without m_simplified flag.
if (keyround1_simplified && !mp->m_simplified) {
break;
}
diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim
index 88735a34b8..6bb8d82021 100644
--- a/src/nvim/testdir/test_mapping.vim
+++ b/src/nvim/testdir/test_mapping.vim
@@ -761,7 +761,7 @@ func Test_mouse_drag_insert_map()
set mouse&
endfunc
-func Test_unmap_simplfied()
+func Test_unmap_simplifiable()
map <C-I> foo
map <Tab> bar
call assert_equal('foo', maparg('<C-I>'))
@@ -770,6 +770,11 @@ func Test_unmap_simplfied()
call assert_equal('', maparg('<C-I>'))
call assert_equal('bar', maparg('<Tab>'))
unmap <Tab>
+
+ map <C-I> foo
+ unmap <Tab>
+ " This should not error
+ unmap <C-I>
endfunc
" vim: shiftwidth=2 sts=2 expandtab