aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/ops.c')
-rw-r--r--src/nvim/ops.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 21ab26898e..75ba8dbede 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -893,6 +893,7 @@ int do_record(int c)
{
char_u *p;
static int regname;
+ static bool change_cmdheight = false;
yankreg_T *old_y_previous;
int retval;
@@ -906,6 +907,13 @@ int do_record(int c)
showmode();
regname = c;
retval = OK;
+ if (!ui_has_messages()) {
+ // Enable macro indicator temporary
+ set_option_value("ch", 1L, NULL, 0);
+ update_screen(VALID);
+
+ change_cmdheight = true;
+ }
apply_autocmds(EVENT_RECORDINGENTER, NULL, NULL, false, curbuf);
}
} else { // stop recording
@@ -928,6 +936,15 @@ int do_record(int c)
(void)tv_dict_add_str(dict, S_LEN("regname"), buf);
tv_dict_set_keys_readonly(dict);
+ if (change_cmdheight) {
+ // Restore cmdheight
+ set_option_value("ch", 0L, NULL, 0);
+
+ redraw_all_later(CLEAR);
+
+ change_cmdheight = false;
+ }
+
// Get the recorded key hits. K_SPECIAL will be escaped, this
// needs to be removed again to put it in a register. exec_reg then
// adds the escaping back later.
@@ -2789,7 +2806,7 @@ static void op_yank_reg(oparg_T *oap, bool message, yankreg_T *reg, bool append)
xfree(reg->y_array);
}
- if (message && (p_ch > 0 || ui_has(kUIMessages))) { // Display message about yank?
+ if (message) { // Display message about yank?
if (yank_type == kMTCharWise && yanklines == 1) {
yanklines = 0;
}