diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2017-04-20 08:35:50 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2017-04-20 22:47:14 +0200 |
| commit | 04fdfe6e0720cf815d0d61189fdd36872ad816f7 (patch) | |
| tree | 48eaab584fd857e28373d5206b1c63f5b6811026 | |
| parent | cbfdeeef7e3bd39195799331dfbbdbb476103901 (diff) | |
| download | vis-04fdfe6e0720cf815d0d61189fdd36872ad816f7.tar.gz vis-04fdfe6e0720cf815d0d61189fdd36872ad816f7.tar.xz | |
vis: add # register to insert cursor number
| -rw-r--r-- | man/vis.1 | 2 | ||||
| -rw-r--r-- | vis-core.h | 1 | ||||
| -rw-r--r-- | vis-registers.c | 11 | ||||
| -rw-r--r-- | vis.c | 1 | ||||
| -rw-r--r-- | vis.h | 1 |
5 files changed, 16 insertions, 0 deletions
@@ -152,6 +152,8 @@ command register, most recently executed command black hole .Pq Pa /dev/null register, ignore content is always empty +.It Ic \(dq# +cursor number (readonly) .El .Pp If no explicit register is specified a default register is used. @@ -45,6 +45,7 @@ typedef struct { bool append; enum { REGISTER_NORMAL, + REGISTER_NUMBER, REGISTER_BLACKHOLE, REGISTER_CLIPBOARD, } type; diff --git a/vis-registers.c b/vis-registers.c index f0ebb15..f5b5d7b 100644 --- a/vis-registers.c +++ b/vis-registers.c @@ -56,6 +56,16 @@ const char *register_slot_get(Vis *vis, Register *reg, size_t slot, size_t *len) *len = buffer_length0(buf); return buffer_content0(buf); } + case REGISTER_NUMBER: + { + Buffer *buf = array_get(®->values, 0); + if (!buf) + return NULL; + buffer_printf(buf, "%zu", slot+1); + if (len) + *len = buffer_length0(buf); + return buffer_content0(buf); + } case REGISTER_CLIPBOARD: { Buffer buferr; @@ -246,4 +256,5 @@ const RegisterDef vis_registers[] = { [VIS_REG_SEARCH] = { '/', VIS_HELP("Last search pattern") }, [VIS_REG_COMMAND] = { ':', VIS_HELP("Last :-command") }, [VIS_REG_SHELL] = { '!', VIS_HELP("Last shell command given to either <, >, |, or !") }, + [VIS_REG_NUMBER] = { '#', VIS_HELP("Cursor number") }, }; @@ -652,6 +652,7 @@ Vis *vis_new(Ui *ui, VisEvent *event) { register_init(&vis->registers[i]); vis->registers[VIS_REG_BLACKHOLE].type = REGISTER_BLACKHOLE; vis->registers[VIS_REG_CLIPBOARD].type = REGISTER_CLIPBOARD; + vis->registers[VIS_REG_NUMBER].type = REGISTER_NUMBER; array_init(&vis->operators); array_init(&vis->motions); array_init(&vis->textobjects); @@ -440,6 +440,7 @@ enum VisRegister { VIS_REG_SEARCH, /* last used search pattern "/ */ VIS_REG_COMMAND, /* last used :-command ": */ VIS_REG_SHELL, /* last used shell command given to either <, >, |, or ! */ + VIS_REG_NUMBER, /* cursor number */ VIS_REG_a, VIS_REG_b, VIS_REG_c, VIS_REG_d, VIS_REG_e, VIS_REG_f, VIS_REG_g, VIS_REG_h, VIS_REG_i, VIS_REG_j, VIS_REG_k, VIS_REG_l, VIS_REG_m, VIS_REG_n, VIS_REG_o, |
