mirror of
https://github.com/vim/vim.git
synced 2025-10-05 05:34:07 -04:00
patch 8.1.2350: other text for CTRL-V in Insert mode with modifyOtherKeys
Problem: Other text for CTRL-V in Insert mode with modifyOtherKeys. Solution: Convert the Escape sequence back to key as if modifyOtherKeys is not set, and use CTRL-SHIFT-V to get the Escape sequence itself. (closes #5254)
This commit is contained in:
@@ -2208,18 +2208,31 @@ getcmdline_int(
|
||||
|
||||
case Ctrl_V:
|
||||
case Ctrl_Q:
|
||||
ignore_drag_release = TRUE;
|
||||
putcmdline('^', TRUE);
|
||||
c = get_literal(); /* get next (two) character(s) */
|
||||
do_abbr = FALSE; /* don't do abbreviation now */
|
||||
extra_char = NUL;
|
||||
/* may need to remove ^ when composing char was typed */
|
||||
if (enc_utf8 && utf_iscomposing(c) && !cmd_silent)
|
||||
{
|
||||
draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
|
||||
msg_putchar(' ');
|
||||
cursorcmd();
|
||||
int prev_mod_mask = mod_mask;
|
||||
|
||||
ignore_drag_release = TRUE;
|
||||
putcmdline('^', TRUE);
|
||||
c = get_literal(); // get next (two) character(s)
|
||||
do_abbr = FALSE; // don't do abbreviation now
|
||||
extra_char = NUL;
|
||||
// may need to remove ^ when composing char was typed
|
||||
if (enc_utf8 && utf_iscomposing(c) && !cmd_silent)
|
||||
{
|
||||
draw_cmdline(ccline.cmdpos,
|
||||
ccline.cmdlen - ccline.cmdpos);
|
||||
msg_putchar(' ');
|
||||
cursorcmd();
|
||||
}
|
||||
|
||||
if ((c == ESC || c == CSI)
|
||||
&& !(prev_mod_mask & MOD_MASK_SHIFT))
|
||||
// Using CTRL-V: Change any modifyOtherKeys ESC
|
||||
// sequence to a normal key. Don't do this for
|
||||
// CTRL-SHIFT-V.
|
||||
c = decodeModifyOtherKeys(c);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
#ifdef FEAT_DIGRAPHS
|
||||
|
Reference in New Issue
Block a user