vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit 9b24de3cb319df3c9951e5ef7a73206ea461e0cd parent 198d80df32ad7f4ad21b9dee769c89f4750ffe50 Author: Marc André Tanner <mat@brain-dump.org> Date: Sun, 7 Feb 2016 23:54:25 +0100 vis: implement yank register "0 Diffstat:
| M | main.c | | | 2 | ++ |
| M | vis-operators.c | | | 2 | ++ |
| M | vis.h | | | 1 | + |
3 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/main.c b/main.c @@ -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 @@ -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; } diff --git a/vis.h b/vis.h @@ -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 */