Mercurial > vim
changeset 31097:4f709e5f24d2 v9.0.0883
patch 9.0.0883: a silent mapping may cause dots on the command line
Commit: https://github.com/vim/vim/commit/698a00f55d60043d51b1c98cbbf3f9fd10badd2f
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Nov 14 22:07:45 2022 +0000
patch 9.0.0883: a silent mapping may cause dots on the command line
Problem: A silent mapping may cause dots on the command line.
Solution: Don't show dots for completion if they are not going to be removed
again. (closes #11501)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 14 Nov 2022 23:15:03 +0100 |
parents | 4d09d22a1c0d |
children | 84ca46887d8a |
files | runtime/doc/map.txt src/cmdexpand.c src/version.c |
diffstat | 3 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -234,6 +234,9 @@ The search string will not be echoed whe the executed command are still given though. To shut them up too, add a ":silent" in the executed command: > :map <silent> ,h :exe ":silent normal /Header\r"<CR> +Note that the effect of a command might also be silenced, e.g., when the +mapping selects another entry for command line completion it won't be +displayed. Prompts will still be given, e.g., for inputdialog(). Using "<silent>" for an abbreviation is possible, but will cause redrawing of the command line to fail.
--- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -226,8 +226,13 @@ nextwild( return FAIL; } - msg_puts("..."); // show that we are busy - out_flush(); + // If cmd_silent is set then don't show the dots, because redrawcmd() below + // won't remove them. + if (!cmd_silent) + { + msg_puts("..."); // show that we are busy + out_flush(); + } i = (int)(xp->xp_pattern - ccline->cmdbuff); xp->xp_pattern_len = ccline->cmdpos - i;