aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-03-15 19:25:25 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-03-15 20:05:12 +0100
commitd8a42a8ad06c42ca6092c61b531fec4eb7bae0f6 (patch)
tree8c3ba54ec697bba0458f0e50142d7d7732b9b01e
parent422c30b3fb99955490286f0eb3fb9dd1daac1154 (diff)
downloadvis-d8a42a8ad06c42ca6092c61b531fec4eb7bae0f6.tar.gz
vis-d8a42a8ad06c42ca6092c61b531fec4eb7bae0f6.tar.xz
vis: add support for command register ":
-rw-r--r--README.md1
-rw-r--r--main.c2
-rw-r--r--vis-prompt.c1
-rw-r--r--vis.h1
4 files changed, 5 insertions, 0 deletions
diff --git a/README.md b/README.md
index b43a4be..dbdb42e 100644
--- a/README.md
+++ b/README.md
@@ -236,6 +236,7 @@ Operators can be forced to work line wise by specifying `V`.
"*, "+ system clipboard integration via shell scripts vis-{copy,paste}
"0 yank register
"/ search register
+ ": command register
"_ black hole (/dev/null) register
If no explicit register is specified a default register is used.
diff --git a/main.c b/main.c
index 7dc7b65..95786be 100644
--- a/main.c
+++ b/main.c
@@ -1156,6 +1156,8 @@ static const char *key2register(Vis *vis, const char *keys, enum VisRegister *re
*reg = VIS_MACRO_LAST_RECORDED;
else if (keys[0] == '/')
*reg = VIS_REG_SEARCH;
+ else if (keys[0] == ':')
+ *reg = VIS_REG_COMMAND;
return keys+1;
}
diff --git a/vis-prompt.c b/vis-prompt.c
index e9f8277..faa145d 100644
--- a/vis-prompt.c
+++ b/vis-prompt.c
@@ -14,6 +14,7 @@ bool vis_prompt_cmd(Vis *vis, const char *cmd) {
case '+':
case ':':
{
+ register_put(vis, &vis->registers[VIS_REG_COMMAND], cmd+1, strlen(cmd+1)+1);
bool ret = vis_cmd(vis, cmd+1);
if (ret && vis->mode->visual)
vis_mode_switch(vis, VIS_MODE_NORMAL);
diff --git a/vis.h b/vis.h
index c90c80a..1088938 100644
--- a/vis.h
+++ b/vis.h
@@ -353,6 +353,7 @@ enum VisRegister {
VIS_MACRO_OPERATOR, /* records entered keys after an operator */
VIS_MACRO_REPEAT, /* copy of the above macro once the recording is finished */
VIS_REG_SEARCH, /* last used search pattern "/ */
+ VIS_REG_COMMAND, /* last used :-command ": */
VIS_REG_INVALID, /* has to be the last 'real' register */
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,