mirror of
https://github.com/neovim/neovim.git
synced 2025-09-23 03:28:33 +00:00
vim-patch:8.2.4160: cannot change the register used for Select mode delete
Problem: Cannot change the register used for Select mode delete.
Solution: Make CTRL-R set the register to be used when deleting text for
Select mode. (Shougo Matsushita, closes vim/vim#9531)
4ede01f188
This commit is contained in:
@@ -164,7 +164,7 @@ static const struct nv_cmd {
|
||||
{ Ctrl_O, nv_ctrlo, 0, 0 },
|
||||
{ Ctrl_P, nv_up, NV_STS, false },
|
||||
{ Ctrl_Q, nv_visual, 0, false },
|
||||
{ Ctrl_R, nv_redo, 0, 0 },
|
||||
{ Ctrl_R, nv_redo_or_register, 0, 0 },
|
||||
{ Ctrl_S, nv_ignore, 0, 0 },
|
||||
{ Ctrl_T, nv_tagpop, NV_NCW, 0 },
|
||||
{ Ctrl_U, nv_halfpage, 0, 0 },
|
||||
@@ -961,6 +961,7 @@ normal_end:
|
||||
&& s->oa.regname == 0) {
|
||||
if (restart_VIsual_select == 1) {
|
||||
VIsual_select = true;
|
||||
VIsual_select_reg = 0;
|
||||
trigger_modechanged();
|
||||
showmode();
|
||||
restart_VIsual_select = 0;
|
||||
@@ -6186,6 +6187,7 @@ static void nv_g_cmd(cmdarg_T *cap)
|
||||
// start Select mode.
|
||||
if (cap->arg) {
|
||||
VIsual_select = true;
|
||||
VIsual_select_reg = 0;
|
||||
} else {
|
||||
may_start_select('c');
|
||||
}
|
||||
@@ -6698,11 +6700,26 @@ static void nv_dot(cmdarg_T *cap)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* CTRL-R: undo undo
|
||||
*/
|
||||
static void nv_redo(cmdarg_T *cap)
|
||||
// CTRL-R: undo undo or specify register in select mode
|
||||
static void nv_redo_or_register(cmdarg_T *cap)
|
||||
{
|
||||
if (VIsual_select && VIsual_active) {
|
||||
int reg;
|
||||
// Get register name
|
||||
no_mapping++;
|
||||
reg = plain_vgetc();
|
||||
LANGMAP_ADJUST(reg, true);
|
||||
no_mapping--;
|
||||
|
||||
if (reg == '"') {
|
||||
// the unnamed register is 0
|
||||
reg = 0;
|
||||
}
|
||||
|
||||
VIsual_select_reg = valid_yank_reg(reg, true) ? reg : 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!checkclearopq(cap->oap)) {
|
||||
u_redo((int)cap->count1);
|
||||
curwin->w_set_curswant = true;
|
||||
@@ -7023,6 +7040,7 @@ static void nv_select(cmdarg_T *cap)
|
||||
{
|
||||
if (VIsual_active) {
|
||||
VIsual_select = true;
|
||||
VIsual_select_reg = 0;
|
||||
} else if (VIsual_reselect) {
|
||||
cap->nchar = 'v'; // fake "gv" command
|
||||
cap->arg = true;
|
||||
|
Reference in New Issue
Block a user