aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2022-03-12 17:56:53 -0700
committerGitHub <noreply@github.com>2022-03-12 17:56:53 -0700
commitf291a0339c186cf6eb83174e88029555b3c2631a (patch)
treecd6d8582a3a8c27e5b7c08b7bb3a0281408b83ad
parent356631cba0e8dc413202f4bc874cb7f204056bae (diff)
downloadrneovim-f291a0339c186cf6eb83174e88029555b3c2631a.tar.gz
rneovim-f291a0339c186cf6eb83174e88029555b3c2631a.tar.bz2
rneovim-f291a0339c186cf6eb83174e88029555b3c2631a.zip
fix: use normal! <C-L> in default <C-L> mapping (#17695)
-rw-r--r--runtime/doc/vim_diff.txt2
-rw-r--r--src/nvim/getchar.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 5ea6a9c5dd..7f944bbfe6 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -84,7 +84,7 @@ Nvim creates the following default mappings at |startup|. You can disable any
of these in your config by simply removing the mapping, e.g. ":unmap Y".
>
nnoremap Y y$
- nnoremap <C-L> <Cmd>nohlsearch<Bar>diffupdate<CR><C-L>
+ nnoremap <C-L> <Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>
inoremap <C-U> <C-G>u<C-U>
inoremap <C-W> <C-G>u<C-W>
<
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 299456f688..3ec5d24753 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -842,7 +842,10 @@ static void init_typebuf(void)
void init_default_mappings(void)
{
add_map((char_u *)"Y y$", NORMAL, true);
- add_map((char_u *)"<C-L> <Cmd>nohlsearch<Bar>diffupdate<CR><C-L>", NORMAL, true);
+
+ // Use normal! <C-L> to prevent inserting raw <C-L> when using i_<C-O>
+ // See https://github.com/neovim/neovim/issues/17473
+ add_map((char_u *)"<C-L> <Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>", NORMAL, true);
add_map((char_u *)"<C-U> <C-G>u<C-U>", INSERT, true);
add_map((char_u *)"<C-W> <C-G>u<C-W>", INSERT, true);
}