From 1c9f487f0edc3e6a10a53dc83a3d779980dc3a26 Mon Sep 17 00:00:00 2001 From: Gregory Anders <8965202+gpanders@users.noreply.github.com> Date: Fri, 15 Jul 2022 07:23:29 -0600 Subject: [PATCH] feat(defaults): nnoremap & :&& #19365 --- runtime/doc/change.txt | 3 +++ runtime/doc/vim_diff.txt | 1 + src/nvim/mapping.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 571fbaec95..b905f53db7 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -633,6 +633,9 @@ Directory for temporary files is created in the first possible directory of: actually work differently. You can use `:&&` to keep the flags. + *&-default* + Mapped to ":&&" by default. |default-mappings| + *g&* g& Synonym for `:%s//~/&` (repeat last substitute with last search pattern on all lines with the same flags). diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index d692fcfc37..bacf160206 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -89,6 +89,7 @@ of these in your config by simply removing the mapping, e.g. ":unmap Y". inoremap u xnoremap * y/\V" xnoremap # y?\V" + nnoremap & :&& < Default Autocommands ~ *default-autocmds* diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c index 9a4db520a6..7f4df66b4d 100644 --- a/src/nvim/mapping.c +++ b/src/nvim/mapping.c @@ -2125,6 +2125,10 @@ void init_default_mappings(void) add_map("", "u", MODE_INSERT, false); add_map("*", "y/\\\\V\"", MODE_VISUAL, false); add_map("#", "y?\\\\V\"", MODE_VISUAL, false); + + // Use : instead of so that ranges are supported (e.g. 3& repeats the substitution on the + // next 3 lines) + add_map("&", ":&&", MODE_NORMAL, false); } /// Add a mapping. Unlike @ref do_map this copies the string arguments, so