vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit 7b484532952155c4e3f8a87dd9c3c9b8676b6df9
parent ecae8296adc5bbc118268d51517973afdf9d5b52
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Wed, 14 Jan 2015 11:42:32 +0100

Accept unique prefixes as :commands

The proper way to do this would be to use a trie, however the ugly
regexes do the trick for now.

Diffstat:
Mconfig.def.h | 34+++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/config.def.h b/config.def.h @@ -48,23 +48,23 @@ static Mode vis_modes[VIS_MODE_LAST]; /* command recognized at the ':'-prompt. tested top to bottom, first match wins. */ static Command cmds[] = { - { "^bd(elete)?!?$", cmd_bdelete, false }, - { "^e(dit)?!?$", cmd_edit, false }, - { "^new$", cmd_new, false }, - { "^o(pen)?$", cmd_open, false }, - { "^qa(ll)?!?$", cmd_qall, false }, - { "^q(uit)?!?$", cmd_quit, false }, - { "^r(ead)?$", cmd_read, false }, - { "^sav(as)?$", cmd_saveas, false }, - { "^set?$", cmd_set, true }, - { "^sp(lit)?$", cmd_split, false }, - { "^s(ubstitute)?$", cmd_substitute, false }, - { "^vnew?$", cmd_vnew, false }, - { "^v(split)?$", cmd_vsplit, false }, - { "^wq!?$", cmd_wq, false }, - { "^w(rite)?$", cmd_write, false }, - { "^x(it)?!?$", cmd_xit, false }, - { /* array terminator */ }, + { "^bd(e|el|ele|elet|elete)?!?$", cmd_bdelete, false }, + { "^e(d|di|dit)?!?$", cmd_edit, false }, + { "^new$", cmd_new, false }, + { "^o(p|pe|pen)?$", cmd_open, false }, + { "^qa(l|ll)?!?$", cmd_qall, false }, + { "^q(u|ui|uit)?!?$", cmd_quit, false }, + { "^r(e|ea|ead)?$", cmd_read, false }, + { "^sav(a|as)?!?$", cmd_saveas, false }, + { "^set?$", cmd_set, true }, + { "^sp(l|li|lit)?$", cmd_split, false }, + { "^s(u|ubstitute)?$", cmd_substitute, false }, + { "^vnew?$", cmd_vnew, false }, + { "^vs(p|pl|pli|plit)?$", cmd_vsplit, false }, + { "^wq!?$", cmd_wq, false }, + { "^w(r|ri|rit|rite)?!?$", cmd_write, false }, + { "^x(i|it)?!?$", cmd_xit, false }, + { /* array terminator */ }, }; /* draw a statubar, do whatever you want with win->statuswin curses window */