mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
vim-patch:7.4.925
Problem: User may yank or put using the register being recorded in.
Solution: Add the recording register in the message. (Christian Brabandt,
closes vim/vim#470)
a0ed84a268
This commit is contained in:
parent
498eb02049
commit
4612821946
@ -5538,6 +5538,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
c don't give |ins-completion-menu| messages. For example,
|
||||
"-- XXX completion (YYY)", "match 1 of 2", "The only match",
|
||||
"Pattern not found", "Back at original", etc.
|
||||
q use "recording" instead of "recording @a"
|
||||
|
||||
This gives you the opportunity to avoid that a change between buffers
|
||||
requires you to hit <Enter>, but still gives as useful a message as
|
||||
|
@ -109,6 +109,12 @@ q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
|
||||
while executing a register, and it doesn't work inside
|
||||
a mapping and |:normal|.
|
||||
|
||||
Note: If the register being used for recording is also
|
||||
used for |y| and |p| the result is most likely not
|
||||
what is expected, because the put will paste the
|
||||
recorded macro and the yank will overwrite the
|
||||
recorded macro.
|
||||
|
||||
q Stops recording.
|
||||
Implementation note: The 'q' that stops recording is
|
||||
not stored in the register, unless it was the result
|
||||
|
@ -835,12 +835,13 @@ int do_record(int c)
|
||||
yankreg_T *old_y_previous;
|
||||
int retval;
|
||||
|
||||
if (Recording == FALSE) { /* start recording */
|
||||
/* registers 0-9, a-z and " are allowed */
|
||||
if (c < 0 || (!ASCII_ISALNUM(c) && c != '"'))
|
||||
if (Recording == false) {
|
||||
// start recording
|
||||
// registers 0-9, a-z and " are allowed
|
||||
if (c < 0 || (!ASCII_ISALNUM(c) && c != '"')) {
|
||||
retval = FAIL;
|
||||
else {
|
||||
Recording = TRUE;
|
||||
} else {
|
||||
Recording = c;
|
||||
showmode();
|
||||
regname = c;
|
||||
retval = OK;
|
||||
|
@ -170,7 +170,8 @@
|
||||
#define SHM_ATTENTION 'A' /* no ATTENTION messages */
|
||||
#define SHM_INTRO 'I' /* intro messages */
|
||||
#define SHM_COMPLETIONMENU 'c' // completion menu messages
|
||||
#define SHM_ALL "rmfixlnwaWtToOsAIc" /* all possible flags for 'shm' */
|
||||
#define SHM_RECORDING 'q' ///< short recording message
|
||||
#define SHM_ALL "rmfixlnwaWtToOsAIcq" ///< all possible flags for 'shm'
|
||||
|
||||
/* characters for p_go: */
|
||||
#define GO_ASEL 'a' /* autoselect */
|
||||
|
@ -6760,8 +6760,8 @@ int showmode(void)
|
||||
if (Recording
|
||||
&& edit_submode == NULL /* otherwise it gets too long */
|
||||
) {
|
||||
MSG_PUTS_ATTR(_("recording"), attr);
|
||||
need_clear = TRUE;
|
||||
recording_mode(attr);
|
||||
need_clear = true;
|
||||
}
|
||||
|
||||
mode_displayed = TRUE;
|
||||
@ -6800,26 +6800,33 @@ static void msg_pos_mode(void)
|
||||
msg_row = Rows - 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete mode message. Used when ESC is typed which is expected to end
|
||||
* Insert mode (but Insert mode didn't end yet!).
|
||||
* Caller should check "mode_displayed".
|
||||
*/
|
||||
void unshowmode(int force)
|
||||
/// Delete mode message. Used when ESC is typed which is expected to end
|
||||
/// Insert mode (but Insert mode didn't end yet!).
|
||||
/// Caller should check "mode_displayed".
|
||||
void unshowmode(bool force)
|
||||
{
|
||||
/*
|
||||
* Don't delete it right now, when not redrawing or inside a mapping.
|
||||
*/
|
||||
if (!redrawing() || (!force && char_avail() && !KeyTyped))
|
||||
redraw_cmdline = TRUE; /* delete mode later */
|
||||
else {
|
||||
// Don't delete it right now, when not redrawing or inside a mapping.
|
||||
if (!redrawing() || (!force && char_avail() && !KeyTyped)) {
|
||||
redraw_cmdline = true; // delete mode later
|
||||
} else {
|
||||
msg_pos_mode();
|
||||
if (Recording)
|
||||
MSG_PUTS_ATTR(_("recording"), hl_attr(HLF_CM));
|
||||
if (Recording) {
|
||||
recording_mode(hl_attr(HLF_CM));
|
||||
}
|
||||
msg_clr_eos();
|
||||
}
|
||||
}
|
||||
|
||||
static void recording_mode(int attr)
|
||||
{
|
||||
MSG_PUTS_ATTR(_("recording"), attr);
|
||||
if (!shortmess(SHM_RECORDING)) {
|
||||
char_u s[4];
|
||||
vim_snprintf((char *)s, ARRAY_SIZE(s), " @%c", Recording);
|
||||
MSG_PUTS_ATTR(s, attr);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Draw the tab pages line at the top of the Vim window.
|
||||
*/
|
||||
|
@ -363,7 +363,7 @@ static int included_patches[] = {
|
||||
// 928 NA
|
||||
// 927 NA
|
||||
// 926,
|
||||
// 925,
|
||||
925,
|
||||
// 924 NA
|
||||
// 923 NA
|
||||
// 922,
|
||||
|
Loading…
Reference in New Issue
Block a user