Solved. Thanks everyone.
bool tap_hold(keyrecord_t *record, char *tap, char *hold) {
if (record->tap.count && record->event.pressed) {
SEND_STRING(tap);
} else if (record->event.pressed) {
SEND_STRING(hold);
}
return false;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(BASE, KC_X):
return tap_hold(record, "zv", "ZV");
case LT(BASE, KC_Y):
return tap_hold(record, ",", ", ");
}
return true;
}