patch 8.2.2005: redoing a mapping with <Cmd> doesn't work properly

Problem:    Redoing a mapping with <Cmd> doesn't work properly.
Solution:   Fill the redo buffer.  Use "<SNR>" instead of a key code.
            (closes #7282)
diff --git a/src/ops.c b/src/ops.c
index cc25683..417bb16 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3465,8 +3465,9 @@
 	if ((redo_yank || oap->op_type != OP_YANK)
 		&& ((!VIsual_active || oap->motion_force)
 		    // Also redo Operator-pending Visual mode mappings
-		    || (VIsual_active && cap->cmdchar == ':'
-						 && oap->op_type != OP_COLON))
+		    || (VIsual_active
+			  && (cap->cmdchar == ':' || cap->cmdchar == K_COMMAND)
+						  && oap->op_type != OP_COLON))
 		&& cap->cmdchar != 'D'
 #ifdef FEAT_FOLDING
 		&& oap->op_type != OP_FOLD
@@ -3688,7 +3689,7 @@
 			    get_op_char(oap->op_type),
 			    get_extra_op_char(oap->op_type),
 			    oap->motion_force, cap->cmdchar, cap->nchar);
-		else if (cap->cmdchar != ':')
+		else if (cap->cmdchar != ':' && cap->cmdchar != K_COMMAND)
 		{
 		    int nchar = oap->op_type == OP_REPLACE ? cap->nchar : NUL;