diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-02-07 23:54:25 +0100 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-02-10 19:39:01 +0100 |
| commit | 66a56c827efcac36e07d6ac34bd05681ab8364e9 (patch) | |
| tree | 75101a584fff95c1a8f42cc04254de53a312d99c | |
| parent | 528c418427361b480dd8be66eb872b2053963817 (diff) | |
| download | vis-66a56c827efcac36e07d6ac34bd05681ab8364e9.tar.gz vis-66a56c827efcac36e07d6ac34bd05681ab8364e9.tar.xz | |
vis: implement yank register "0
| -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 */ |
