mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
patch 9.1.1213: cannot :put while keeping indent
Problem: cannot :put while keeping indent (Peter Aronoff) Solution: add the :iput ex command (64-bitman) fixes: #16225 closes: #16886 Signed-off-by: 64-bitman <60551350+64-bitman@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
7ceca3eb00
commit
250739d442
@ -231,6 +231,7 @@ static void ex_winpos(exarg_T *eap);
|
||||
#endif
|
||||
static void ex_operators(exarg_T *eap);
|
||||
static void ex_put(exarg_T *eap);
|
||||
static void ex_iput(exarg_T *eap);
|
||||
static void ex_copymove(exarg_T *eap);
|
||||
static void ex_submagic(exarg_T *eap);
|
||||
static void ex_join(exarg_T *eap);
|
||||
@ -2372,7 +2373,7 @@ do_one_cmd(
|
||||
goto doend;
|
||||
}
|
||||
#endif
|
||||
if (valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
|
||||
if (valid_yank_reg(*ea.arg, ((ea.cmdidx != CMD_put && ea.cmdidx != CMD_iput)
|
||||
&& !IS_USER_CMDIDX(ea.cmdidx))))
|
||||
{
|
||||
ea.regname = *ea.arg++;
|
||||
@ -8520,6 +8521,25 @@ ex_put(exarg_T *eap)
|
||||
PUT_LINE|PUT_CURSLINE);
|
||||
}
|
||||
|
||||
/*
|
||||
* ":iput".
|
||||
*/
|
||||
static void
|
||||
ex_iput(exarg_T *eap)
|
||||
{
|
||||
// ":0iput" works like ":1iput!".
|
||||
if (eap->line2 == 0)
|
||||
{
|
||||
eap->line2 = 1;
|
||||
eap->forceit = TRUE;
|
||||
}
|
||||
curwin->w_cursor.lnum = eap->line2;
|
||||
check_cursor_col();
|
||||
do_put(eap->regname, NULL, eap->forceit ? BACKWARD : FORWARD, 1L,
|
||||
PUT_LINE|PUT_CURSLINE
|
||||
|PUT_FIXINDENT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle ":copy" and ":move".
|
||||
*/
|
||||
|
Reference in New Issue
Block a user