diff options
| -rw-r--r-- | main.c | 2 | ||||
| -rw-r--r-- | vis-operators.c | 2 | ||||
| -rw-r--r-- | vis.h | 1 |
3 files changed, 5 insertions, 0 deletions
@@ -1340,6 +1340,8 @@ static const char *key2register(Vis *vis, const char *keys, enum VisRegister *re *reg = VIS_REG_CLIPBOARD; else if (keys[0] == '_') *reg = VIS_REG_BLACKHOLE; + else if (keys[0] == '0') + *reg = VIS_REG_ZERO; return keys+1; } diff --git a/vis-operators.c b/vis-operators.c index 7901851..d4fdb21 100644 --- a/vis-operators.c +++ b/vis-operators.c @@ -25,6 +25,8 @@ static size_t op_change(Vis *vis, Text *txt, OperatorContext *c) { static size_t op_yank(Vis *vis, Text *txt, OperatorContext *c) { c->reg->linewise = c->linewise; register_put(vis, c->reg, txt, &c->range); + if (c->reg == &vis->registers[VIS_REG_DEFAULT]) + register_put(vis, &vis->registers[VIS_REG_ZERO], txt, &c->range); return c->pos; } @@ -350,6 +350,7 @@ enum VisRegister { VIS_REG_u, VIS_REG_v, VIS_REG_w, VIS_REG_x, VIS_REG_y, VIS_REG_z, VIS_REG_DEFAULT, /* used when no other register is specified */ + VIS_REG_ZERO, /* yank register */ VIS_REG_BLACKHOLE, /* /dev/null register */ VIS_REG_CLIPBOARD, /* system clipboard register */ VIS_REG_PROMPT, /* internal register which shadows DEFAULT in PROMPT mode */ |
