'cpoptions': Remove "*" flag #2554

The "*" flag in 'cpoptions' makes the command :* execute the contents of
a register. Removed because
  1. the same functionality exists as :@
  2. it hides :* as a useful command-line shortcut for :'<,'>
  3. unlike :@ it cannot be used with the * register

Helped-by: Michael Reed <m.reed@mykolab.com>
This commit is contained in:
David Bürgin
2015-05-01 14:27:37 +02:00
committed by Michael Reed
parent 1721e115b4
commit 001209a2fe
8 changed files with 20 additions and 37 deletions

View File

@@ -703,10 +703,7 @@ Visual Mode and Range *v_:*
history for repeating a command on different Visually selected history for repeating a command on different Visually selected
lines. lines.
When Visual mode was already ended, a short way to use the When Visual mode was already ended, a short way to use the
Visual area for a range is `:*`. This requires that "*" does Visual area for a range is `:*`.
not appear in 'cpo', see |cpo-star|. Otherwise you will have
to type `:'<,'>`
============================================================================== ==============================================================================
5. Ex command-line flags *ex-flags* 5. Ex command-line flags *ex-flags*

View File

@@ -1064,7 +1064,6 @@ tag command action ~
|:!!| :!! repeat last ":!" command |:!!| :!! repeat last ":!" command
|:#| :# same as ":number" |:#| :# same as ":number"
|:&| :& repeat last ":substitute" |:&| :& repeat last ":substitute"
|:star| :* execute contents of a register
|:<| :< shift lines one 'shiftwidth' left |:<| :< shift lines one 'shiftwidth' left
|:=| := print the cursor line number |:=| := print the cursor line number
|:>| :> shift lines one 'shiftwidth' right |:>| :> shift lines one 'shiftwidth' right

View File

@@ -1936,9 +1936,6 @@ A jump table for the options with a short description can be found at |Q_op|.
+ When included, a ":write file" command will reset the + When included, a ":write file" command will reset the
'modified' flag of the buffer, even though the buffer 'modified' flag of the buffer, even though the buffer
itself may still be different from its file. itself may still be different from its file.
*cpo-star*
* Use ":*" in the same way as ":@". When not included,
":*" is an alias for ":'<,'>", select the Visual area.
*cpo-<* *cpo-<*
< Disable the recognition of special key codes in |<>| < Disable the recognition of special key codes in |<>|
form in mappings, abbreviations, and the "to" part of form in mappings, abbreviations, and the "to" part of

View File

@@ -128,14 +128,12 @@ q Stops recording.
*@@* *E748* *@@* *E748*
@@ Repeat the previous @{0-9a-z":*} [count] times. @@ Repeat the previous @{0-9a-z":*} [count] times.
:[addr]*{0-9a-z".=+} *:@* *:star* *:@*
:[addr]@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} as an Ex :[addr]@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} as an Ex
command. First set cursor at line [addr] (default is command. First set cursor at line [addr] (default is
current line). When the last line in the register does current line). When the last line in the register does
not have a <CR> it will be added automatically when not have a <CR> it will be added automatically when
the 'e' flag is present in 'cpoptions'. the 'e' flag is present in 'cpoptions'.
Note that the ":*" command is only recognized when the
'*' flag is present in 'cpoptions'.
For ":@=" the last used expression is used. The For ":@=" the last used expression is used. The
result of evaluating the expression is executed as an result of evaluating the expression is executed as an
Ex command. Ex command.

View File

@@ -4833,18 +4833,18 @@ int find_help_tags(char_u *arg, int *num_matches, char_u ***matches, int keep_la
{ {
char_u *s, *d; char_u *s, *d;
int i; int i;
static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*", static char *(mtable[]) = {"*", "g*", "[*", "]*",
"/*", "/\\*", "\"*", "**", "/*", "/\\*", "\"*", "**",
"cpo-*", "/\\(\\)", "/\\%(\\)", "/\\(\\)", "/\\%(\\)",
"?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?", "?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
"/\\?", "/\\z(\\)", "\\=", ":s\\=", "/\\?", "/\\z(\\)", "\\=", ":s\\=",
"[count]", "[quotex]", "[range]", "[count]", "[quotex]", "[range]",
"[pattern]", "\\|", "\\%$", "[pattern]", "\\|", "\\%$",
"s/\\~", "s/\\U", "s/\\L", "s/\\~", "s/\\U", "s/\\L",
"s/\\1", "s/\\2", "s/\\3", "s/\\9"}; "s/\\1", "s/\\2", "s/\\3", "s/\\9"};
static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star", static char *(rtable[]) = {"star", "gstar", "[star", "]star",
"/star", "/\\\\star", "quotestar", "starstar", "/star", "/\\\\star", "quotestar", "starstar",
"cpo-star", "/\\\\(\\\\)", "/\\\\%(\\\\)", "/\\\\(\\\\)", "/\\\\%(\\\\)",
"?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?", "?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
"/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=",
"\\[count]", "\\[quotex]", "\\[range]", "\\[count]", "\\[quotex]", "\\[range]",

View File

@@ -3136,13 +3136,6 @@ return {
addr_type=ADDR_LINES, addr_type=ADDR_LINES,
func='do_sub', func='do_sub',
}, },
{
command='*',
enum='CMD_star',
flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN),
addr_type=ADDR_LINES,
func='ex_at',
},
{ {
command='<', command='<',
enum='CMD_lshift', enum='CMD_lshift',

View File

@@ -1489,8 +1489,9 @@ static char_u * do_one_cmd(char_u **cmdlinep,
cmd = ea.cmd; cmd = ea.cmd;
ea.cmd = skip_range(ea.cmd, NULL); ea.cmd = skip_range(ea.cmd, NULL);
if (*ea.cmd == '*' && vim_strchr(p_cpo, CPO_STAR) == NULL) if (*ea.cmd == '*') {
ea.cmd = skipwhite(ea.cmd + 1); ea.cmd = skipwhite(ea.cmd + 1);
}
p = find_command(&ea, NULL); p = find_command(&ea, NULL);
/* /*
@@ -1605,7 +1606,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
++ea.addr_count; ++ea.addr_count;
} }
/* '*' - visual area */ /* '*' - visual area */
else if (*ea.cmd == '*' && vim_strchr(p_cpo, CPO_STAR) == NULL) { else if (*ea.cmd == '*') {
pos_T *fp; pos_T *fp;
if (ea.addr_type != ADDR_LINES) { if (ea.addr_type != ADDR_LINES) {
@@ -2373,7 +2374,7 @@ static char_u *find_command(exarg_T *eap, int *full)
++p; ++p;
/* check for non-alpha command */ /* check for non-alpha command */
if (p == eap->cmd && vim_strchr((char_u *)"@*!=><&~#", *p) != NULL) if (p == eap->cmd && vim_strchr((char_u *)"@!=><&~#", *p) != NULL)
++p; ++p;
len = (int)(p - eap->cmd); len = (int)(p - eap->cmd);
if (*eap->cmd == 'd' && (p[-1] == 'l' || p[-1] == 'p')) { if (*eap->cmd == 'd' && (p[-1] == 'l' || p[-1] == 'p')) {
@@ -4096,11 +4097,10 @@ void separate_nextcmd(exarg_T *eap)
(void)skip_expr(&p); (void)skip_expr(&p);
} }
/* Check for '"': start of comment or '|': next command */ /* Check for '"': start of comment or '|': next command */
/* :@" and :*" do not start a comment! /* :@" does not start a comment!
* :redir @" doesn't either. */ * :redir @" doesn't either. */
else if ((*p == '"' && !(eap->argt & NOTRLCOM) else if ((*p == '"' && !(eap->argt & NOTRLCOM)
&& ((eap->cmdidx != CMD_at && eap->cmdidx != CMD_star) && (eap->cmdidx != CMD_at || p != eap->arg)
|| p != eap->arg)
&& (eap->cmdidx != CMD_redir && (eap->cmdidx != CMD_redir
|| p != eap->arg + 1 || p[-1] != '@')) || p != eap->arg + 1 || p[-1] != '@'))
|| *p == '|' || *p == '\n') { || *p == '|' || *p == '\n') {
@@ -7144,20 +7144,20 @@ static void ex_join(exarg_T *eap)
} }
/* /*
* ":[addr]@r" or ":[addr]*r": execute register * ":[addr]@r": execute register
*/ */
static void ex_at(exarg_T *eap) static void ex_at(exarg_T *eap)
{ {
int c;
int prev_len = typebuf.tb_len; int prev_len = typebuf.tb_len;
curwin->w_cursor.lnum = eap->line2; curwin->w_cursor.lnum = eap->line2;
// Get the register name. No name means use the previous one.
/* get the register name. No name means to use the previous one */ int c = *eap->arg;
c = *eap->arg; if (c == NUL) {
if (c == NUL || (c == '*' && *eap->cmd == '*'))
c = '@'; c = '@';
}
/* Put the register in the typeahead buffer with the "silent" flag. */ /* Put the register in the typeahead buffer with the "silent" flag. */
if (do_execreg(c, TRUE, vim_strchr(p_cpo, CPO_EXECBUF) != NULL, TRUE) if (do_execreg(c, TRUE, vim_strchr(p_cpo, CPO_EXECBUF) != NULL, TRUE)
== FAIL) { == FAIL) {

View File

@@ -126,7 +126,6 @@
#define CPO_DOLLAR '$' #define CPO_DOLLAR '$'
#define CPO_FILTER '!' #define CPO_FILTER '!'
#define CPO_MATCH '%' #define CPO_MATCH '%'
#define CPO_STAR '*' /* ":*" means ":@" */
#define CPO_PLUS '+' /* ":write file" resets 'modified' */ #define CPO_PLUS '+' /* ":write file" resets 'modified' */
#define CPO_MINUS '-' /* "9-" fails at and before line 9 */ #define CPO_MINUS '-' /* "9-" fails at and before line 9 */
#define CPO_SPECI '<' /* don't recognize <> in mappings */ #define CPO_SPECI '<' /* don't recognize <> in mappings */
@@ -143,9 +142,9 @@
* cursor would not move */ * cursor would not move */
/* default values for Vim, Vi and POSIX */ /* default values for Vim, Vi and POSIX */
#define CPO_VIM "aABceFs" #define CPO_VIM "aABceFs"
#define CPO_VI "aAbBcCdDeEfFiIjJkKlLmMnoOpPqrRsStuvWxXyZ$!%*-+<>;" #define CPO_VI "aAbBcCdDeEfFiIjJkKlLmMnoOpPqrRsStuvWxXyZ$!%-+<>;"
#define CPO_ALL \ #define CPO_ALL \
"aAbBcCdDeEfFiIjJkKlLmMnoOpPqrRsStuvWxXyZ$!%*-+<>#{|&/\\.;" "aAbBcCdDeEfFiIjJkKlLmMnoOpPqrRsStuvWxXyZ$!%-+<>#{|&/\\.;"
/* characters for p_ww option: */ /* characters for p_ww option: */
#define WW_ALL "bshl<>[],~" #define WW_ALL "bshl<>[],~"