mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.0128: cannot list options one per line
Problem: Cannot list options one per line. Solution: Use ":set!" to list one option per line.
This commit is contained in:
@@ -22,9 +22,13 @@ achieve special effects. These options come in three forms:
|
|||||||
1. Setting options *set-option* *E764*
|
1. Setting options *set-option* *E764*
|
||||||
|
|
||||||
*:se* *:set*
|
*:se* *:set*
|
||||||
:se[t] Show all options that differ from their default value.
|
:se[t][!] Show all options that differ from their default value.
|
||||||
|
When [!] is present every option is on a separate
|
||||||
|
line.
|
||||||
|
|
||||||
:se[t] all Show all but terminal options.
|
:se[t][!] all Show all but terminal options.
|
||||||
|
When [!] is present every option is on a separate
|
||||||
|
line.
|
||||||
|
|
||||||
:se[t] termcap Show all terminal options. Note that in the GUI the
|
:se[t] termcap Show all terminal options. Note that in the GUI the
|
||||||
key codes are not shown, because they are generated
|
key codes are not shown, because they are generated
|
||||||
@@ -287,7 +291,7 @@ happens when the buffer is not loaded, but they are lost when the buffer is
|
|||||||
wiped out |:bwipe|.
|
wiped out |:bwipe|.
|
||||||
|
|
||||||
*:setl* *:setlocal*
|
*:setl* *:setlocal*
|
||||||
:setl[ocal] ... Like ":set" but set only the value local to the
|
:setl[ocal][!] ... Like ":set" but set only the value local to the
|
||||||
current buffer or window. Not all options have a
|
current buffer or window. Not all options have a
|
||||||
local value. If the option does not have a local
|
local value. If the option does not have a local
|
||||||
value the global value is set.
|
value the global value is set.
|
||||||
@@ -309,7 +313,7 @@ wiped out |:bwipe|.
|
|||||||
{option}, so that the global value will be used.
|
{option}, so that the global value will be used.
|
||||||
|
|
||||||
*:setg* *:setglobal*
|
*:setg* *:setglobal*
|
||||||
:setg[lobal] ... Like ":set" but set only the global value for a local
|
:setg[lobal][!] ... Like ":set" but set only the global value for a local
|
||||||
option without changing the local value.
|
option without changing the local value.
|
||||||
When displaying an option, the global value is shown.
|
When displaying an option, the global value is shown.
|
||||||
With the "all" argument: display global values for all
|
With the "all" argument: display global values for all
|
||||||
|
@@ -1307,16 +1307,16 @@ EXCMD(CMD_scscope, "scscope", ex_scscope,
|
|||||||
EX_EXTRA|EX_NOTRLCOM,
|
EX_EXTRA|EX_NOTRLCOM,
|
||||||
ADDR_NONE),
|
ADDR_NONE),
|
||||||
EXCMD(CMD_set, "set", ex_set,
|
EXCMD(CMD_set, "set", ex_set,
|
||||||
EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
|
EX_BANG|EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
|
||||||
ADDR_NONE),
|
ADDR_NONE),
|
||||||
EXCMD(CMD_setfiletype, "setfiletype", ex_setfiletype,
|
EXCMD(CMD_setfiletype, "setfiletype", ex_setfiletype,
|
||||||
EX_TRLBAR|EX_EXTRA|EX_NEEDARG|EX_CMDWIN,
|
EX_TRLBAR|EX_EXTRA|EX_NEEDARG|EX_CMDWIN,
|
||||||
ADDR_NONE),
|
ADDR_NONE),
|
||||||
EXCMD(CMD_setglobal, "setglobal", ex_set,
|
EXCMD(CMD_setglobal, "setglobal", ex_set,
|
||||||
EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
|
EX_BANG|EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
|
||||||
ADDR_NONE),
|
ADDR_NONE),
|
||||||
EXCMD(CMD_setlocal, "setlocal", ex_set,
|
EXCMD(CMD_setlocal, "setlocal", ex_set,
|
||||||
EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
|
EX_BANG|EX_TRLBAR|EX_EXTRA|EX_CMDWIN|EX_SBOXOK,
|
||||||
ADDR_NONE),
|
ADDR_NONE),
|
||||||
EXCMD(CMD_sfind, "sfind", ex_splitview,
|
EXCMD(CMD_sfind, "sfind", ex_splitview,
|
||||||
EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
|
EX_BANG|EX_FILE1|EX_RANGE|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
|
||||||
|
@@ -320,7 +320,6 @@ static void ex_setfiletype(exarg_T *eap);
|
|||||||
# define ex_diffupdate ex_ni
|
# define ex_diffupdate ex_ni
|
||||||
#endif
|
#endif
|
||||||
static void ex_digraphs(exarg_T *eap);
|
static void ex_digraphs(exarg_T *eap);
|
||||||
static void ex_set(exarg_T *eap);
|
|
||||||
#ifdef FEAT_SEARCH_EXTRA
|
#ifdef FEAT_SEARCH_EXTRA
|
||||||
static void ex_nohlsearch(exarg_T *eap);
|
static void ex_nohlsearch(exarg_T *eap);
|
||||||
#else
|
#else
|
||||||
@@ -8488,23 +8487,6 @@ ex_digraphs(exarg_T *eap UNUSED)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
ex_set(exarg_T *eap)
|
|
||||||
{
|
|
||||||
int flags = 0;
|
|
||||||
|
|
||||||
if (eap->cmdidx == CMD_setlocal)
|
|
||||||
flags = OPT_LOCAL;
|
|
||||||
else if (eap->cmdidx == CMD_setglobal)
|
|
||||||
flags = OPT_GLOBAL;
|
|
||||||
#if defined(FEAT_EVAL) && defined(FEAT_BROWSE)
|
|
||||||
if (cmdmod.browse && flags == 0)
|
|
||||||
ex_options(eap);
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
(void)do_set(eap->arg, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(FEAT_SEARCH_EXTRA) || defined(PROTO)
|
#if defined(FEAT_SEARCH_EXTRA) || defined(PROTO)
|
||||||
void
|
void
|
||||||
set_no_hlsearch(int flag)
|
set_no_hlsearch(int flag)
|
||||||
|
32
src/option.c
32
src/option.c
@@ -1066,6 +1066,27 @@ set_title_defaults(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void
|
||||||
|
ex_set(exarg_T *eap)
|
||||||
|
{
|
||||||
|
int flags = 0;
|
||||||
|
|
||||||
|
if (eap->cmdidx == CMD_setlocal)
|
||||||
|
flags = OPT_LOCAL;
|
||||||
|
else if (eap->cmdidx == CMD_setglobal)
|
||||||
|
flags = OPT_GLOBAL;
|
||||||
|
#if defined(FEAT_EVAL) && defined(FEAT_BROWSE)
|
||||||
|
if (cmdmod.browse && flags == 0)
|
||||||
|
ex_options(eap);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (eap->forceit)
|
||||||
|
flags |= OPT_ONECOLUMN;
|
||||||
|
(void)do_set(eap->arg, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Parse 'arg' for option settings.
|
* Parse 'arg' for option settings.
|
||||||
*
|
*
|
||||||
@@ -4349,7 +4370,7 @@ showoptions(
|
|||||||
#define INC 20
|
#define INC 20
|
||||||
#define GAP 3
|
#define GAP 3
|
||||||
|
|
||||||
items = ALLOC_MULT(struct vimoption *, PARAM_COUNT);
|
items = ALLOC_MULT(struct vimoption *, OPTION_COUNT);
|
||||||
if (items == NULL)
|
if (items == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -4364,9 +4385,10 @@ showoptions(
|
|||||||
msg_puts_title(_("\n--- Options ---"));
|
msg_puts_title(_("\n--- Options ---"));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do the loop two times:
|
* Do the loop two times:
|
||||||
* 1. display the short items
|
* 1. display the short items
|
||||||
* 2. display the long items (only strings and numbers)
|
* 2. display the long items (only strings and numbers)
|
||||||
|
* When "opt_flags" has OPT_ONECOLUMN do everything in run 2.
|
||||||
*/
|
*/
|
||||||
for (run = 1; run <= 2 && !got_int; ++run)
|
for (run = 1; run <= 2 && !got_int; ++run)
|
||||||
{
|
{
|
||||||
@@ -4382,7 +4404,7 @@ showoptions(
|
|||||||
|
|
||||||
varp = NULL;
|
varp = NULL;
|
||||||
isterm = istermoption(p);
|
isterm = istermoption(p);
|
||||||
if (opt_flags != 0)
|
if ((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) != 0)
|
||||||
{
|
{
|
||||||
if (p->indir != PV_NONE && !isterm)
|
if (p->indir != PV_NONE && !isterm)
|
||||||
varp = get_varp_scope(p, opt_flags);
|
varp = get_varp_scope(p, opt_flags);
|
||||||
@@ -4394,7 +4416,9 @@ showoptions(
|
|||||||
|| (all == 1 && !isterm)
|
|| (all == 1 && !isterm)
|
||||||
|| (all == 0 && !optval_default(p, varp, p_cp))))
|
|| (all == 0 && !optval_default(p, varp, p_cp))))
|
||||||
{
|
{
|
||||||
if (p->flags & P_BOOL)
|
if (opt_flags & OPT_ONECOLUMN)
|
||||||
|
len = Columns;
|
||||||
|
else if (p->flags & P_BOOL)
|
||||||
len = 1; // a toggle option fits always
|
len = 1; // a toggle option fits always
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -3009,7 +3009,7 @@ static struct vimoption options[] =
|
|||||||
{NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCTX_INIT}
|
{NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCTX_INIT}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption))
|
#define OPTION_COUNT (sizeof(options) / sizeof(struct vimoption))
|
||||||
|
|
||||||
// The following is needed to make the gen_opt_test.vim script work.
|
// The following is needed to make the gen_opt_test.vim script work.
|
||||||
// {"
|
// {"
|
||||||
|
@@ -8,6 +8,7 @@ void set_init_2(void);
|
|||||||
void set_init_3(void);
|
void set_init_3(void);
|
||||||
void set_helplang_default(char_u *lang);
|
void set_helplang_default(char_u *lang);
|
||||||
void set_title_defaults(void);
|
void set_title_defaults(void);
|
||||||
|
void ex_set(exarg_T *eap);
|
||||||
int do_set(char_u *arg, int opt_flags);
|
int do_set(char_u *arg, int opt_flags);
|
||||||
void did_set_option(int opt_idx, int opt_flags, int new_value, int value_checked);
|
void did_set_option(int opt_idx, int opt_flags, int new_value, int value_checked);
|
||||||
int string_to_key(char_u *arg, int multi_byte);
|
int string_to_key(char_u *arg, int multi_byte);
|
||||||
|
@@ -44,7 +44,7 @@ func Test_wildchar()
|
|||||||
set wildchar&
|
set wildchar&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_options()
|
func Test_options_command()
|
||||||
let caught = 'ok'
|
let caught = 'ok'
|
||||||
try
|
try
|
||||||
options
|
options
|
||||||
@@ -388,6 +388,13 @@ func Test_set_all()
|
|||||||
set tw& iskeyword& splitbelow&
|
set tw& iskeyword& splitbelow&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_set_one_column()
|
||||||
|
let out_mult = execute('set all')->split("\n")
|
||||||
|
let out_one = execute('set! all')->split("\n")
|
||||||
|
" one column should be two to four times as many lines
|
||||||
|
call assert_inrange(len(out_mult) * 2, len(out_mult) * 4, len(out_one))
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_set_values()
|
func Test_set_values()
|
||||||
if filereadable('opt_test.vim')
|
if filereadable('opt_test.vim')
|
||||||
source opt_test.vim
|
source opt_test.vim
|
||||||
|
@@ -742,6 +742,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
128,
|
||||||
/**/
|
/**/
|
||||||
127,
|
127,
|
||||||
/**/
|
/**/
|
||||||
|
13
src/vim.h
13
src/vim.h
@@ -1229,12 +1229,13 @@ typedef struct {
|
|||||||
* When OPT_GLOBAL and OPT_LOCAL are both missing, set both local and global
|
* When OPT_GLOBAL and OPT_LOCAL are both missing, set both local and global
|
||||||
* values, get local value.
|
* values, get local value.
|
||||||
*/
|
*/
|
||||||
#define OPT_FREE 1 // free old value if it was allocated
|
#define OPT_FREE 0x01 // free old value if it was allocated
|
||||||
#define OPT_GLOBAL 2 // use global value
|
#define OPT_GLOBAL 0x02 // use global value
|
||||||
#define OPT_LOCAL 4 // use local value
|
#define OPT_LOCAL 0x04 // use local value
|
||||||
#define OPT_MODELINE 8 // option in modeline
|
#define OPT_MODELINE 0x08 // option in modeline
|
||||||
#define OPT_WINONLY 16 // only set window-local options
|
#define OPT_WINONLY 0x10 // only set window-local options
|
||||||
#define OPT_NOWIN 32 // don't set window-local options
|
#define OPT_NOWIN 0x20 // don't set window-local options
|
||||||
|
#define OPT_ONECOLUMN 0x40 // list options one per line
|
||||||
|
|
||||||
// Magic chars used in confirm dialog strings
|
// Magic chars used in confirm dialog strings
|
||||||
#define DLG_BUTTON_SEP '\n'
|
#define DLG_BUTTON_SEP '\n'
|
||||||
|
Reference in New Issue
Block a user