blob: 8e9d3f93243974dfa76b794fa1fd4546035a90f2 [file] [log] [blame]
Bram Moolenaar0eddca42019-09-12 22:26:43 +02001/* vi:set ts=8 sts=4 sw=4 noet:
2 *
3 * VIM - Vi IMproved by Bram Moolenaar
4 *
5 * Do ":help uganda" in Vim to read copying and usage conditions.
6 * Do ":help credits" in Vim to see a list of people who contributed.
7 */
8
9/*
10 * optiondefs.h: option definitions
11 */
12
13// The options that are local to a window or buffer have "indir" set to one of
14// these values. Special values:
15// PV_NONE: global option.
16// PV_WIN is added: window-local option
17// PV_BUF is added: buffer-local option
18// PV_BOTH is added: global option which also has a local value.
19#define PV_BOTH 0x1000
20#define PV_WIN 0x2000
21#define PV_BUF 0x4000
22#define PV_MASK 0x0fff
23#define OPT_WIN(x) (idopt_T)(PV_WIN + (int)(x))
24#define OPT_BUF(x) (idopt_T)(PV_BUF + (int)(x))
25#define OPT_BOTH(x) (idopt_T)(PV_BOTH + (int)(x))
26
27// Definition of the PV_ values for buffer-local options.
28// The BV_ values are defined in option.h.
29#define PV_AI OPT_BUF(BV_AI)
30#define PV_AR OPT_BOTH(OPT_BUF(BV_AR))
31#define PV_BKC OPT_BOTH(OPT_BUF(BV_BKC))
32#define PV_BH OPT_BUF(BV_BH)
33#define PV_BT OPT_BUF(BV_BT)
34#ifdef FEAT_QUICKFIX
35# define PV_EFM OPT_BOTH(OPT_BUF(BV_EFM))
36# define PV_GP OPT_BOTH(OPT_BUF(BV_GP))
37# define PV_MP OPT_BOTH(OPT_BUF(BV_MP))
38#endif
39#define PV_BIN OPT_BUF(BV_BIN)
40#define PV_BL OPT_BUF(BV_BL)
41#define PV_BOMB OPT_BUF(BV_BOMB)
42#define PV_CI OPT_BUF(BV_CI)
43#ifdef FEAT_CINDENT
44# define PV_CIN OPT_BUF(BV_CIN)
45# define PV_CINK OPT_BUF(BV_CINK)
46# define PV_CINO OPT_BUF(BV_CINO)
47#endif
48#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
49# define PV_CINW OPT_BUF(BV_CINW)
50#endif
51#define PV_CM OPT_BOTH(OPT_BUF(BV_CM))
52#ifdef FEAT_FOLDING
53# define PV_CMS OPT_BUF(BV_CMS)
54#endif
55#ifdef FEAT_COMMENTS
56# define PV_COM OPT_BUF(BV_COM)
57#endif
58#define PV_CPT OPT_BUF(BV_CPT)
59#define PV_DICT OPT_BOTH(OPT_BUF(BV_DICT))
60#define PV_TSR OPT_BOTH(OPT_BUF(BV_TSR))
61#define PV_CSL OPT_BUF(BV_CSL)
62#ifdef FEAT_COMPL_FUNC
63# define PV_CFU OPT_BUF(BV_CFU)
64#endif
65#ifdef FEAT_FIND_ID
66# define PV_DEF OPT_BOTH(OPT_BUF(BV_DEF))
67# define PV_INC OPT_BOTH(OPT_BUF(BV_INC))
68#endif
69#define PV_EOL OPT_BUF(BV_EOL)
70#define PV_FIXEOL OPT_BUF(BV_FIXEOL)
71#define PV_EP OPT_BOTH(OPT_BUF(BV_EP))
72#define PV_ET OPT_BUF(BV_ET)
73#define PV_FENC OPT_BUF(BV_FENC)
74#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
75# define PV_BEXPR OPT_BOTH(OPT_BUF(BV_BEXPR))
76#endif
77#define PV_FP OPT_BOTH(OPT_BUF(BV_FP))
78#ifdef FEAT_EVAL
79# define PV_FEX OPT_BUF(BV_FEX)
80#endif
81#define PV_FF OPT_BUF(BV_FF)
82#define PV_FLP OPT_BUF(BV_FLP)
83#define PV_FO OPT_BUF(BV_FO)
84#define PV_FT OPT_BUF(BV_FT)
85#define PV_IMI OPT_BUF(BV_IMI)
86#define PV_IMS OPT_BUF(BV_IMS)
87#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
88# define PV_INDE OPT_BUF(BV_INDE)
89# define PV_INDK OPT_BUF(BV_INDK)
90#endif
91#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
92# define PV_INEX OPT_BUF(BV_INEX)
93#endif
94#define PV_INF OPT_BUF(BV_INF)
95#define PV_ISK OPT_BUF(BV_ISK)
96#ifdef FEAT_CRYPT
97# define PV_KEY OPT_BUF(BV_KEY)
98#endif
99#ifdef FEAT_KEYMAP
100# define PV_KMAP OPT_BUF(BV_KMAP)
101#endif
102#define PV_KP OPT_BOTH(OPT_BUF(BV_KP))
103#ifdef FEAT_LISP
104# define PV_LISP OPT_BUF(BV_LISP)
105# define PV_LW OPT_BOTH(OPT_BUF(BV_LW))
106#endif
107#define PV_MENC OPT_BOTH(OPT_BUF(BV_MENC))
108#define PV_MA OPT_BUF(BV_MA)
109#define PV_ML OPT_BUF(BV_ML)
110#define PV_MOD OPT_BUF(BV_MOD)
111#define PV_MPS OPT_BUF(BV_MPS)
112#define PV_NF OPT_BUF(BV_NF)
113#ifdef FEAT_COMPL_FUNC
114# define PV_OFU OPT_BUF(BV_OFU)
115#endif
116#define PV_PATH OPT_BOTH(OPT_BUF(BV_PATH))
117#define PV_PI OPT_BUF(BV_PI)
118#ifdef FEAT_TEXTOBJ
119# define PV_QE OPT_BUF(BV_QE)
120#endif
121#define PV_RO OPT_BUF(BV_RO)
122#ifdef FEAT_SMARTINDENT
123# define PV_SI OPT_BUF(BV_SI)
124#endif
125#define PV_SN OPT_BUF(BV_SN)
126#ifdef FEAT_SYN_HL
127# define PV_SMC OPT_BUF(BV_SMC)
128# define PV_SYN OPT_BUF(BV_SYN)
129#endif
130#ifdef FEAT_SPELL
131# define PV_SPC OPT_BUF(BV_SPC)
132# define PV_SPF OPT_BUF(BV_SPF)
133# define PV_SPL OPT_BUF(BV_SPL)
134#endif
135#define PV_STS OPT_BUF(BV_STS)
136#ifdef FEAT_SEARCHPATH
137# define PV_SUA OPT_BUF(BV_SUA)
138#endif
139#define PV_SW OPT_BUF(BV_SW)
140#define PV_SWF OPT_BUF(BV_SWF)
141#ifdef FEAT_EVAL
142# define PV_TFU OPT_BUF(BV_TFU)
143#endif
144#define PV_TAGS OPT_BOTH(OPT_BUF(BV_TAGS))
145#define PV_TC OPT_BOTH(OPT_BUF(BV_TC))
146#define PV_TS OPT_BUF(BV_TS)
147#define PV_TW OPT_BUF(BV_TW)
148#define PV_TX OPT_BUF(BV_TX)
149#ifdef FEAT_PERSISTENT_UNDO
150# define PV_UDF OPT_BUF(BV_UDF)
151#endif
152#define PV_WM OPT_BUF(BV_WM)
153#ifdef FEAT_VARTABS
154# define PV_VSTS OPT_BUF(BV_VSTS)
155# define PV_VTS OPT_BUF(BV_VTS)
156#endif
157
158// Definition of the PV_ values for window-local options.
159// The WV_ values are defined in option.h.
160#define PV_LIST OPT_WIN(WV_LIST)
161#ifdef FEAT_ARABIC
162# define PV_ARAB OPT_WIN(WV_ARAB)
163#endif
164#ifdef FEAT_LINEBREAK
165# define PV_BRI OPT_WIN(WV_BRI)
166# define PV_BRIOPT OPT_WIN(WV_BRIOPT)
167#endif
168# define PV_WCR OPT_WIN(WV_WCR)
169#ifdef FEAT_DIFF
170# define PV_DIFF OPT_WIN(WV_DIFF)
171#endif
172#ifdef FEAT_FOLDING
173# define PV_FDC OPT_WIN(WV_FDC)
174# define PV_FEN OPT_WIN(WV_FEN)
175# define PV_FDI OPT_WIN(WV_FDI)
176# define PV_FDL OPT_WIN(WV_FDL)
177# define PV_FDM OPT_WIN(WV_FDM)
178# define PV_FML OPT_WIN(WV_FML)
179# define PV_FDN OPT_WIN(WV_FDN)
180# ifdef FEAT_EVAL
181# define PV_FDE OPT_WIN(WV_FDE)
182# define PV_FDT OPT_WIN(WV_FDT)
183# endif
184# define PV_FMR OPT_WIN(WV_FMR)
185#endif
186#ifdef FEAT_LINEBREAK
187# define PV_LBR OPT_WIN(WV_LBR)
188#endif
189#define PV_NU OPT_WIN(WV_NU)
190#define PV_RNU OPT_WIN(WV_RNU)
191#ifdef FEAT_LINEBREAK
192# define PV_NUW OPT_WIN(WV_NUW)
193#endif
194#if defined(FEAT_QUICKFIX)
195# define PV_PVW OPT_WIN(WV_PVW)
196#endif
197#ifdef FEAT_RIGHTLEFT
198# define PV_RL OPT_WIN(WV_RL)
199# define PV_RLC OPT_WIN(WV_RLC)
200#endif
201#define PV_SCBIND OPT_WIN(WV_SCBIND)
202#define PV_SCROLL OPT_WIN(WV_SCROLL)
203#define PV_SISO OPT_BOTH(OPT_WIN(WV_SISO))
204#define PV_SO OPT_BOTH(OPT_WIN(WV_SO))
205#ifdef FEAT_SPELL
206# define PV_SPELL OPT_WIN(WV_SPELL)
207#endif
208#ifdef FEAT_SYN_HL
209# define PV_CUC OPT_WIN(WV_CUC)
210# define PV_CUL OPT_WIN(WV_CUL)
211# define PV_CULOPT OPT_WIN(WV_CULOPT)
212# define PV_CC OPT_WIN(WV_CC)
213#endif
214#ifdef FEAT_STL_OPT
215# define PV_STL OPT_BOTH(OPT_WIN(WV_STL))
216#endif
217#define PV_UL OPT_BOTH(OPT_BUF(BV_UL))
218# define PV_WFH OPT_WIN(WV_WFH)
219# define PV_WFW OPT_WIN(WV_WFW)
220#define PV_WRAP OPT_WIN(WV_WRAP)
221#define PV_CRBIND OPT_WIN(WV_CRBIND)
222#ifdef FEAT_CONCEAL
223# define PV_COCU OPT_WIN(WV_COCU)
224# define PV_COLE OPT_WIN(WV_COLE)
225#endif
226#ifdef FEAT_TERMINAL
227# define PV_TWK OPT_WIN(WV_TWK)
228# define PV_TWS OPT_WIN(WV_TWS)
229# define PV_TWSL OPT_BUF(BV_TWSL)
230#endif
231#ifdef FEAT_SIGNS
232# define PV_SCL OPT_WIN(WV_SCL)
233#endif
234
235// WV_ and BV_ values get typecasted to this for the "indir" field
236typedef enum
237{
238 PV_NONE = 0,
239 PV_MAXVAL = 0xffff // to avoid warnings for value out of range
240} idopt_T;
241
242// Options local to a window have a value local to a buffer and global to all
243// buffers. Indicate this by setting "var" to VAR_WIN.
244#define VAR_WIN ((char_u *)-1)
245
246// These are the global values for options which are also local to a buffer.
247// Only to be used in option.c!
248static int p_ai;
249static int p_bin;
250static int p_bomb;
251static char_u *p_bh;
252static char_u *p_bt;
253static int p_bl;
254static int p_ci;
255#ifdef FEAT_CINDENT
256static int p_cin;
257static char_u *p_cink;
258static char_u *p_cino;
259#endif
260#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
261static char_u *p_cinw;
262#endif
263#ifdef FEAT_COMMENTS
264static char_u *p_com;
265#endif
266#ifdef FEAT_FOLDING
267static char_u *p_cms;
268#endif
269static char_u *p_cpt;
270#ifdef FEAT_COMPL_FUNC
271static char_u *p_cfu;
272static char_u *p_ofu;
273#endif
274#ifdef FEAT_EVAL
275static char_u *p_tfu;
276#endif
277static int p_eol;
278static int p_fixeol;
279static int p_et;
280static char_u *p_fenc;
281static char_u *p_ff;
282static char_u *p_fo;
283static char_u *p_flp;
284static char_u *p_ft;
285static long p_iminsert;
286static long p_imsearch;
287#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
288static char_u *p_inex;
289#endif
290#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
291static char_u *p_inde;
292static char_u *p_indk;
293#endif
294#if defined(FEAT_EVAL)
295static char_u *p_fex;
296#endif
297static int p_inf;
298static char_u *p_isk;
299#ifdef FEAT_CRYPT
300static char_u *p_key;
301#endif
302#ifdef FEAT_LISP
303static int p_lisp;
304#endif
305static int p_ml;
306static int p_ma;
307static int p_mod;
308static char_u *p_mps;
309static char_u *p_nf;
310static int p_pi;
311#ifdef FEAT_TEXTOBJ
312static char_u *p_qe;
313#endif
314static int p_ro;
315#ifdef FEAT_SMARTINDENT
316static int p_si;
317#endif
318static int p_sn;
319static long p_sts;
320#if defined(FEAT_SEARCHPATH)
321static char_u *p_sua;
322#endif
323static long p_sw;
324static int p_swf;
325#ifdef FEAT_SYN_HL
326static long p_smc;
327static char_u *p_syn;
328#endif
329#ifdef FEAT_SPELL
330static char_u *p_spc;
331static char_u *p_spf;
332static char_u *p_spl;
333#endif
334static long p_ts;
335static long p_tw;
336static int p_tx;
337#ifdef FEAT_PERSISTENT_UNDO
338static int p_udf;
339#endif
340static long p_wm;
341#ifdef FEAT_VARTABS
342static char_u *p_vsts;
343static char_u *p_vts;
344#endif
345#ifdef FEAT_KEYMAP
346static char_u *p_keymap;
347#endif
348#ifdef FEAT_TERMINAL
349static long p_twsl; // 'termwinscroll'
350#endif
351
352// Saved values for when 'bin' is set.
353static int p_et_nobin;
354static int p_ml_nobin;
355static long p_tw_nobin;
356static long p_wm_nobin;
357
358// Saved values for when 'paste' is set
359static int p_ai_nopaste;
360static int p_et_nopaste;
361static long p_sts_nopaste;
362static long p_tw_nopaste;
363static long p_wm_nopaste;
364#ifdef FEAT_VARTABS
365static char_u *p_vsts_nopaste;
366#endif
367
368struct vimoption
369{
370 char *fullname; // full option name
371 char *shortname; // permissible abbreviation
372 long_u flags; // see below
373 char_u *var; // global option: pointer to variable;
374 // window-local option: VAR_WIN;
375 // buffer-local option: global value
376 idopt_T indir; // global option: PV_NONE;
377 // local option: indirect option index
378 char_u *def_val[2]; // default values for variable (vi and vim)
379#ifdef FEAT_EVAL
380 sctx_T script_ctx; // script context where the option was last set
381# define SCTX_INIT , {0, 0, 0, 1}
382#else
383# define SCTX_INIT
384#endif
385};
386
387#define VI_DEFAULT 0 // def_val[VI_DEFAULT] is Vi default value
388#define VIM_DEFAULT 1 // def_val[VIM_DEFAULT] is Vim default value
389
390//
391// Flags
392//
393#define P_BOOL 0x01 // the option is boolean
394#define P_NUM 0x02 // the option is numeric
395#define P_STRING 0x04 // the option is a string
396#define P_ALLOCED 0x08 // the string option is in allocated memory,
397 // must use free_string_option() when
398 // assigning new value. Not set if default is
399 // the same.
400#define P_EXPAND 0x10 // environment expansion. NOTE: P_EXPAND can
401 // never be used for local or hidden options!
402#define P_NODEFAULT 0x40 // don't set to default value
403#define P_DEF_ALLOCED 0x80 // default value is in allocated memory, must
404 // use vim_free() when assigning new value
405#define P_WAS_SET 0x100 // option has been set/reset
406#define P_NO_MKRC 0x200 // don't include in :mkvimrc output
407#define P_VI_DEF 0x400 // Use Vi default for Vim
408#define P_VIM 0x800 // Vim option, reset when 'cp' set
409
410 // when option changed, what to display:
411#define P_RSTAT 0x1000 // redraw status lines
412#define P_RWIN 0x2000 // redraw current window and recompute text
413#define P_RBUF 0x4000 // redraw current buffer and recompute text
414#define P_RALL 0x6000 // redraw all windows
415#define P_RCLR 0x7000 // clear and redraw all
416
417#define P_COMMA 0x8000 // comma separated list
418#define P_ONECOMMA 0x18000L // P_COMMA and cannot have two consecutive
419 // commas
420#define P_NODUP 0x20000L // don't allow duplicate strings
421#define P_FLAGLIST 0x40000L // list of single-char flags
422
423#define P_SECURE 0x80000L // cannot change in modeline or secure mode
424#define P_GETTEXT 0x100000L // expand default value with _()
425#define P_NOGLOB 0x200000L // do not use local value for global vimrc
426#define P_NFNAME 0x400000L // only normal file name chars allowed
427#define P_INSECURE 0x800000L // option was set from a modeline
428#define P_PRI_MKRC 0x1000000L // priority for :mkvimrc (setting option has
429 // side effects)
430#define P_NO_ML 0x2000000L // not allowed in modeline
431#define P_CURSWANT 0x4000000L // update curswant required; not needed when
432 // there is a redraw flag
433#define P_NDNAME 0x8000000L // only normal dir name chars allowed
434#define P_RWINONLY 0x10000000L // only redraw current window
435#define P_MLE 0x20000000L // under control of 'modelineexpr'
436
437#define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
438
439// 'isprint' for latin1 is also used for MS-Windows cp1252, where 0x80 is used
440// for the currency sign.
441#if defined(MSWIN)
442# define ISP_LATIN1 (char_u *)"@,~-255"
443#else
444# define ISP_LATIN1 (char_u *)"@,161-255"
445#endif
446
447# define HIGHLIGHT_INIT "8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC"
448
449// Default python version for pyx* commands
450#if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)
451# define DEFAULT_PYTHON_VER 0
452#elif defined(FEAT_PYTHON3)
453# define DEFAULT_PYTHON_VER 3
454#elif defined(FEAT_PYTHON)
455# define DEFAULT_PYTHON_VER 2
456#else
457# define DEFAULT_PYTHON_VER 0
458#endif
459
460// used for 'cinkeys' and 'indentkeys'
461#define INDENTKEYS_DEFAULT (char_u *)"0{,0},0),0],:,0#,!^F,o,O,e"
462
463// options[] is initialized here.
464// The order of the options MUST be alphabetic for ":set all" and findoption().
465// All option names MUST start with a lowercase letter (for findoption()).
466// Exception: "t_" options are at the end.
467// The options with a NULL variable are 'hidden': a set command for them is
468// ignored and they are not printed.
469static struct vimoption options[] =
470{
471 {"aleph", "al", P_NUM|P_VI_DEF|P_CURSWANT,
472#ifdef FEAT_RIGHTLEFT
473 (char_u *)&p_aleph, PV_NONE,
474#else
475 (char_u *)NULL, PV_NONE,
476#endif
477 {
478#if defined(MSWIN) && !defined(FEAT_GUI_MSWIN)
479 (char_u *)128L,
480#else
481 (char_u *)224L,
482#endif
483 (char_u *)0L} SCTX_INIT},
484 {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
485#if defined(FEAT_GUI_MAC)
486 (char_u *)&p_antialias, PV_NONE,
487 {(char_u *)FALSE, (char_u *)FALSE}
488#else
489 (char_u *)NULL, PV_NONE,
490 {(char_u *)FALSE, (char_u *)FALSE}
491#endif
492 SCTX_INIT},
493 {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
494#ifdef FEAT_ARABIC
495 (char_u *)VAR_WIN, PV_ARAB,
496#else
497 (char_u *)NULL, PV_NONE,
498#endif
499 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
500 {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
501#ifdef FEAT_ARABIC
502 (char_u *)&p_arshape, PV_NONE,
503#else
504 (char_u *)NULL, PV_NONE,
505#endif
506 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
507 {"allowrevins", "ari", P_BOOL|P_VI_DEF|P_VIM,
508#ifdef FEAT_RIGHTLEFT
509 (char_u *)&p_ari, PV_NONE,
510#else
511 (char_u *)NULL, PV_NONE,
512#endif
513 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
514 {"altkeymap", "akm", P_BOOL|P_VI_DEF,
515 (char_u *)NULL, PV_NONE,
516 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
517 {"ambiwidth", "ambw", P_STRING|P_VI_DEF|P_RCLR,
518 (char_u *)&p_ambw, PV_NONE,
519 {(char_u *)"single", (char_u *)0L}
520 SCTX_INIT},
521 {"autochdir", "acd", P_BOOL|P_VI_DEF,
522#ifdef FEAT_AUTOCHDIR
523 (char_u *)&p_acd, PV_NONE,
524 {(char_u *)FALSE, (char_u *)0L}
525#else
526 (char_u *)NULL, PV_NONE,
527 {(char_u *)0L, (char_u *)0L}
528#endif
529 SCTX_INIT},
530 {"autoindent", "ai", P_BOOL|P_VI_DEF,
531 (char_u *)&p_ai, PV_AI,
532 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
533 {"autoprint", "ap", P_BOOL|P_VI_DEF,
534 (char_u *)NULL, PV_NONE,
535 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
536 {"autoread", "ar", P_BOOL|P_VI_DEF,
537 (char_u *)&p_ar, PV_AR,
538 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
539 {"autowrite", "aw", P_BOOL|P_VI_DEF,
540 (char_u *)&p_aw, PV_NONE,
541 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
542 {"autowriteall","awa", P_BOOL|P_VI_DEF,
543 (char_u *)&p_awa, PV_NONE,
544 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
545 {"background", "bg", P_STRING|P_VI_DEF|P_RCLR,
546 (char_u *)&p_bg, PV_NONE,
547 {
548#if (defined(MSWIN)) && !defined(FEAT_GUI)
549 (char_u *)"dark",
550#else
551 (char_u *)"light",
552#endif
553 (char_u *)0L} SCTX_INIT},
554 {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_ONECOMMA|P_NODUP,
555 (char_u *)&p_bs, PV_NONE,
556 {(char_u *)"", (char_u *)0L} SCTX_INIT},
557 {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM,
558 (char_u *)&p_bk, PV_NONE,
559 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
560 {"backupcopy", "bkc", P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
561 (char_u *)&p_bkc, PV_BKC,
562#ifdef UNIX
563 {(char_u *)"yes", (char_u *)"auto"}
564#else
565 {(char_u *)"auto", (char_u *)"auto"}
566#endif
567 SCTX_INIT},
568 {"backupdir", "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA
569 |P_NODUP|P_SECURE,
570 (char_u *)&p_bdir, PV_NONE,
571 {(char_u *)DFLT_BDIR, (char_u *)0L} SCTX_INIT},
572 {"backupext", "bex", P_STRING|P_VI_DEF|P_NFNAME,
573 (char_u *)&p_bex, PV_NONE,
574 {
575#ifdef VMS
576 (char_u *)"_",
577#else
578 (char_u *)"~",
579#endif
580 (char_u *)0L} SCTX_INIT},
581 {"backupskip", "bsk", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
582#ifdef FEAT_WILDIGN
583 (char_u *)&p_bsk, PV_NONE,
584 {(char_u *)"", (char_u *)0L}
585#else
586 (char_u *)NULL, PV_NONE,
587 {(char_u *)0L, (char_u *)0L}
588#endif
589 SCTX_INIT},
590 {"balloondelay","bdlay",P_NUM|P_VI_DEF,
591#ifdef FEAT_BEVAL
592 (char_u *)&p_bdlay, PV_NONE,
593 {(char_u *)600L, (char_u *)0L}
594#else
595 (char_u *)NULL, PV_NONE,
596 {(char_u *)0L, (char_u *)0L}
597#endif
598 SCTX_INIT},
599 {"ballooneval", "beval",P_BOOL|P_VI_DEF|P_NO_MKRC,
600#ifdef FEAT_BEVAL_GUI
601 (char_u *)&p_beval, PV_NONE,
602 {(char_u *)FALSE, (char_u *)0L}
603#else
604 (char_u *)NULL, PV_NONE,
605 {(char_u *)0L, (char_u *)0L}
606#endif
607 SCTX_INIT},
608 {"balloonevalterm", "bevalterm",P_BOOL|P_VI_DEF|P_NO_MKRC,
609#ifdef FEAT_BEVAL_TERM
610 (char_u *)&p_bevalterm, PV_NONE,
611 {(char_u *)FALSE, (char_u *)0L}
612#else
613 (char_u *)NULL, PV_NONE,
614 {(char_u *)0L, (char_u *)0L}
615#endif
616 SCTX_INIT},
617 {"balloonexpr", "bexpr", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
618#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
619 (char_u *)&p_bexpr, PV_BEXPR,
620 {(char_u *)"", (char_u *)0L}
621#else
622 (char_u *)NULL, PV_NONE,
623 {(char_u *)0L, (char_u *)0L}
624#endif
625 SCTX_INIT},
626 {"beautify", "bf", P_BOOL|P_VI_DEF,
627 (char_u *)NULL, PV_NONE,
628 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
629 {"belloff", "bo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
630 (char_u *)&p_bo, PV_NONE,
631 {(char_u *)"", (char_u *)0L} SCTX_INIT},
632 {"binary", "bin", P_BOOL|P_VI_DEF|P_RSTAT,
633 (char_u *)&p_bin, PV_BIN,
634 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
635 {"bioskey", "biosk",P_BOOL|P_VI_DEF,
636 (char_u *)NULL, PV_NONE,
637 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
638 {"bomb", NULL, P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
639 (char_u *)&p_bomb, PV_BOMB,
640 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
641 {"breakat", "brk", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST,
642#ifdef FEAT_LINEBREAK
643 (char_u *)&p_breakat, PV_NONE,
644 {(char_u *)" \t!@*-+;:,./?", (char_u *)0L}
645#else
646 (char_u *)NULL, PV_NONE,
647 {(char_u *)0L, (char_u *)0L}
648#endif
649 SCTX_INIT},
650 {"breakindent", "bri", P_BOOL|P_VI_DEF|P_VIM|P_RWIN,
651#ifdef FEAT_LINEBREAK
652 (char_u *)VAR_WIN, PV_BRI,
653 {(char_u *)FALSE, (char_u *)0L}
654#else
655 (char_u *)NULL, PV_NONE,
656 {(char_u *)0L, (char_u *)0L}
657#endif
658 SCTX_INIT},
659 {"breakindentopt", "briopt", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF
660 |P_ONECOMMA|P_NODUP,
661#ifdef FEAT_LINEBREAK
662 (char_u *)VAR_WIN, PV_BRIOPT,
663 {(char_u *)"", (char_u *)NULL}
664#else
665 (char_u *)NULL, PV_NONE,
666 {(char_u *)"", (char_u *)NULL}
667#endif
668 SCTX_INIT},
669 {"browsedir", "bsdir",P_STRING|P_VI_DEF,
670#ifdef FEAT_BROWSE
671 (char_u *)&p_bsdir, PV_NONE,
672 {(char_u *)"last", (char_u *)0L}
673#else
674 (char_u *)NULL, PV_NONE,
675 {(char_u *)0L, (char_u *)0L}
676#endif
677 SCTX_INIT},
678 {"bufhidden", "bh", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
679 (char_u *)&p_bh, PV_BH,
680 {(char_u *)"", (char_u *)0L}
681 SCTX_INIT},
682 {"buflisted", "bl", P_BOOL|P_VI_DEF|P_NOGLOB,
683 (char_u *)&p_bl, PV_BL,
684 {(char_u *)1L, (char_u *)0L}
685 SCTX_INIT},
686 {"buftype", "bt", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB,
687 (char_u *)&p_bt, PV_BT,
688 {(char_u *)"", (char_u *)0L}
689 SCTX_INIT},
690 {"casemap", "cmp", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
691 (char_u *)&p_cmp, PV_NONE,
692 {(char_u *)"internal,keepascii", (char_u *)0L}
693 SCTX_INIT},
694 {"cdpath", "cd", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE|P_COMMA|P_NODUP,
695#ifdef FEAT_SEARCHPATH
696 (char_u *)&p_cdpath, PV_NONE,
697 {(char_u *)",,", (char_u *)0L}
698#else
699 (char_u *)NULL, PV_NONE,
700 {(char_u *)0L, (char_u *)0L}
701#endif
702 SCTX_INIT},
703 {"cedit", NULL, P_STRING,
704#ifdef FEAT_CMDWIN
705 (char_u *)&p_cedit, PV_NONE,
706 {(char_u *)"", (char_u *)CTRL_F_STR}
707#else
708 (char_u *)NULL, PV_NONE,
709 {(char_u *)0L, (char_u *)0L}
710#endif
711 SCTX_INIT},
712 {"charconvert", "ccv", P_STRING|P_VI_DEF|P_SECURE,
713#if defined(FEAT_EVAL)
714 (char_u *)&p_ccv, PV_NONE,
715 {(char_u *)"", (char_u *)0L}
716#else
717 (char_u *)NULL, PV_NONE,
718 {(char_u *)0L, (char_u *)0L}
719#endif
720 SCTX_INIT},
721 {"cindent", "cin", P_BOOL|P_VI_DEF|P_VIM,
722#ifdef FEAT_CINDENT
723 (char_u *)&p_cin, PV_CIN,
724#else
725 (char_u *)NULL, PV_NONE,
726#endif
727 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
728 {"cinkeys", "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
729#ifdef FEAT_CINDENT
730 (char_u *)&p_cink, PV_CINK,
731 {INDENTKEYS_DEFAULT, (char_u *)0L}
732#else
733 (char_u *)NULL, PV_NONE,
734 {(char_u *)0L, (char_u *)0L}
735#endif
736 SCTX_INIT},
737 {"cinoptions", "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
738#ifdef FEAT_CINDENT
739 (char_u *)&p_cino, PV_CINO,
740#else
741 (char_u *)NULL, PV_NONE,
742#endif
743 {(char_u *)"", (char_u *)0L} SCTX_INIT},
744 {"cinwords", "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
745#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
746 (char_u *)&p_cinw, PV_CINW,
747 {(char_u *)"if,else,while,do,for,switch",
748 (char_u *)0L}
749#else
750 (char_u *)NULL, PV_NONE,
751 {(char_u *)0L, (char_u *)0L}
752#endif
753 SCTX_INIT},
754 {"clipboard", "cb", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
755#ifdef FEAT_CLIPBOARD
756 (char_u *)&p_cb, PV_NONE,
757# ifdef FEAT_XCLIPBOARD
758 {(char_u *)"autoselect,exclude:cons\\|linux",
759 (char_u *)0L}
760# else
761 {(char_u *)"", (char_u *)0L}
762# endif
763#else
764 (char_u *)NULL, PV_NONE,
765 {(char_u *)"", (char_u *)0L}
766#endif
767 SCTX_INIT},
768 {"cmdheight", "ch", P_NUM|P_VI_DEF|P_RALL,
769 (char_u *)&p_ch, PV_NONE,
770 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
771 {"cmdwinheight", "cwh", P_NUM|P_VI_DEF,
772#ifdef FEAT_CMDWIN
773 (char_u *)&p_cwh, PV_NONE,
774#else
775 (char_u *)NULL, PV_NONE,
776#endif
777 {(char_u *)7L, (char_u *)0L} SCTX_INIT},
778 {"colorcolumn", "cc", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN,
779#ifdef FEAT_SYN_HL
780 (char_u *)VAR_WIN, PV_CC,
781#else
782 (char_u *)NULL, PV_NONE,
783#endif
784 {(char_u *)"", (char_u *)0L} SCTX_INIT},
785 {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
786 (char_u *)&Columns, PV_NONE,
787 {(char_u *)80L, (char_u *)0L} SCTX_INIT},
788 {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
789 |P_NODUP|P_CURSWANT,
790#ifdef FEAT_COMMENTS
791 (char_u *)&p_com, PV_COM,
792 {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
793 (char_u *)0L}
794#else
795 (char_u *)NULL, PV_NONE,
796 {(char_u *)0L, (char_u *)0L}
797#endif
798 SCTX_INIT},
799 {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
800#ifdef FEAT_FOLDING
801 (char_u *)&p_cms, PV_CMS,
802 {(char_u *)"/*%s*/", (char_u *)0L}
803#else
804 (char_u *)NULL, PV_NONE,
805 {(char_u *)0L, (char_u *)0L}
806#endif
807 SCTX_INIT},
808 // P_PRI_MKRC isn't needed here, optval_default()
809 // always returns TRUE for 'compatible'
810 {"compatible", "cp", P_BOOL|P_RALL,
811 (char_u *)&p_cp, PV_NONE,
812 {(char_u *)TRUE, (char_u *)FALSE} SCTX_INIT},
813 {"complete", "cpt", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
814 (char_u *)&p_cpt, PV_CPT,
815 {(char_u *)".,w,b,u,t,i", (char_u *)0L}
816 SCTX_INIT},
817 {"concealcursor","cocu", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
818#ifdef FEAT_CONCEAL
819 (char_u *)VAR_WIN, PV_COCU,
820 {(char_u *)"", (char_u *)NULL}
821#else
822 (char_u *)NULL, PV_NONE,
823 {(char_u *)NULL, (char_u *)0L}
824#endif
825 SCTX_INIT},
826 {"conceallevel","cole", P_NUM|P_RWIN|P_VI_DEF,
827#ifdef FEAT_CONCEAL
828 (char_u *)VAR_WIN, PV_COLE,
829#else
830 (char_u *)NULL, PV_NONE,
831#endif
832 {(char_u *)0L, (char_u *)0L}
833 SCTX_INIT},
834 {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
835#ifdef FEAT_COMPL_FUNC
836 (char_u *)&p_cfu, PV_CFU,
837 {(char_u *)"", (char_u *)0L}
838#else
839 (char_u *)NULL, PV_NONE,
840 {(char_u *)0L, (char_u *)0L}
841#endif
842 SCTX_INIT},
843 {"completeopt", "cot", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
844 (char_u *)&p_cot, PV_NONE,
845 {(char_u *)"menu,preview", (char_u *)0L}
846 SCTX_INIT},
847 {"completepopup", "cpp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
848#if defined(FEAT_TEXT_PROP) && defined(FEAT_QUICKFIX)
849 (char_u *)&p_cpp, PV_NONE,
850 {(char_u *)"", (char_u *)0L}
851#else
852 (char_u *)NULL, PV_NONE,
853 {(char_u *)NULL, (char_u *)0L}
854#endif
855 SCTX_INIT},
856 {"completeslash", "csl", P_STRING|P_VI_DEF|P_VIM,
857#if defined(BACKSLASH_IN_FILENAME)
858 (char_u *)&p_csl, PV_CSL,
859 {(char_u *)"", (char_u *)0L}
860#else
861 (char_u *)NULL, PV_NONE,
862 {(char_u *)0L, (char_u *)0L}
863#endif
864 SCTX_INIT},
865 {"confirm", "cf", P_BOOL|P_VI_DEF,
866#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
867 (char_u *)&p_confirm, PV_NONE,
868#else
869 (char_u *)NULL, PV_NONE,
870#endif
871 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
872 {"conskey", "consk",P_BOOL|P_VI_DEF,
873 (char_u *)NULL, PV_NONE,
874 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
875 {"copyindent", "ci", P_BOOL|P_VI_DEF|P_VIM,
876 (char_u *)&p_ci, PV_CI,
877 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
878 {"cpoptions", "cpo", P_STRING|P_VIM|P_RALL|P_FLAGLIST,
879 (char_u *)&p_cpo, PV_NONE,
880 {(char_u *)CPO_VI, (char_u *)CPO_VIM}
881 SCTX_INIT},
882 {"cryptmethod", "cm", P_STRING|P_ALLOCED|P_VI_DEF,
883#ifdef FEAT_CRYPT
884 (char_u *)&p_cm, PV_CM,
885 {(char_u *)"blowfish2", (char_u *)0L}
886#else
887 (char_u *)NULL, PV_NONE,
888 {(char_u *)0L, (char_u *)0L}
889#endif
890 SCTX_INIT},
891 {"cscopepathcomp", "cspc", P_NUM|P_VI_DEF|P_VIM,
892#ifdef FEAT_CSCOPE
893 (char_u *)&p_cspc, PV_NONE,
894#else
895 (char_u *)NULL, PV_NONE,
896#endif
897 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
898 {"cscopeprg", "csprg", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
899#ifdef FEAT_CSCOPE
900 (char_u *)&p_csprg, PV_NONE,
901 {(char_u *)"cscope", (char_u *)0L}
902#else
903 (char_u *)NULL, PV_NONE,
904 {(char_u *)0L, (char_u *)0L}
905#endif
906 SCTX_INIT},
907 {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
908#if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX)
909 (char_u *)&p_csqf, PV_NONE,
910 {(char_u *)"", (char_u *)0L}
911#else
912 (char_u *)NULL, PV_NONE,
913 {(char_u *)0L, (char_u *)0L}
914#endif
915 SCTX_INIT},
916 {"cscoperelative", "csre", P_BOOL|P_VI_DEF|P_VIM,
917#ifdef FEAT_CSCOPE
918 (char_u *)&p_csre, PV_NONE,
919#else
920 (char_u *)NULL, PV_NONE,
921#endif
922 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
923 {"cscopetag", "cst", P_BOOL|P_VI_DEF|P_VIM,
924#ifdef FEAT_CSCOPE
925 (char_u *)&p_cst, PV_NONE,
926#else
927 (char_u *)NULL, PV_NONE,
928#endif
929 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
930 {"cscopetagorder", "csto", P_NUM|P_VI_DEF|P_VIM,
931#ifdef FEAT_CSCOPE
932 (char_u *)&p_csto, PV_NONE,
933#else
934 (char_u *)NULL, PV_NONE,
935#endif
936 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
937 {"cscopeverbose", "csverb", P_BOOL|P_VI_DEF|P_VIM,
938#ifdef FEAT_CSCOPE
939 (char_u *)&p_csverbose, PV_NONE,
940#else
941 (char_u *)NULL, PV_NONE,
942#endif
943 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
944 {"cursorbind", "crb", P_BOOL|P_VI_DEF,
945 (char_u *)VAR_WIN, PV_CRBIND,
946 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
947 {"cursorcolumn", "cuc", P_BOOL|P_VI_DEF|P_RWINONLY,
948#ifdef FEAT_SYN_HL
949 (char_u *)VAR_WIN, PV_CUC,
950#else
951 (char_u *)NULL, PV_NONE,
952#endif
953 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
954 {"cursorline", "cul", P_BOOL|P_VI_DEF|P_RWINONLY,
955#ifdef FEAT_SYN_HL
956 (char_u *)VAR_WIN, PV_CUL,
957#else
958 (char_u *)NULL, PV_NONE,
959#endif
960 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
Bram Moolenaar017ba072019-09-14 21:01:23 +0200961 {"cursorlineopt", "culopt", P_STRING|P_VI_DEF|P_RWIN|P_ONECOMMA|P_NODUP,
Bram Moolenaar0eddca42019-09-12 22:26:43 +0200962#ifdef FEAT_SYN_HL
963 (char_u *)VAR_WIN, PV_CULOPT,
964#else
965 (char_u *)NULL, PV_NONE,
966#endif
967 {(char_u *)"both", (char_u *)0L} SCTX_INIT},
968 {"debug", NULL, P_STRING|P_VI_DEF,
969 (char_u *)&p_debug, PV_NONE,
970 {(char_u *)"", (char_u *)0L} SCTX_INIT},
971 {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
972#ifdef FEAT_FIND_ID
973 (char_u *)&p_def, PV_DEF,
974 {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
975#else
976 (char_u *)NULL, PV_NONE,
977 {(char_u *)NULL, (char_u *)0L}
978#endif
979 SCTX_INIT},
980 {"delcombine", "deco", P_BOOL|P_VI_DEF|P_VIM,
981 (char_u *)&p_deco, PV_NONE,
982 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
983 {"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP|P_NDNAME,
984 (char_u *)&p_dict, PV_DICT,
985 {(char_u *)"", (char_u *)0L} SCTX_INIT},
986 {"diff", NULL, P_BOOL|P_VI_DEF|P_RWIN|P_NOGLOB,
987#ifdef FEAT_DIFF
988 (char_u *)VAR_WIN, PV_DIFF,
989#else
990 (char_u *)NULL, PV_NONE,
991#endif
992 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
993 {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE|P_CURSWANT,
994#if defined(FEAT_DIFF) && defined(FEAT_EVAL)
995 (char_u *)&p_dex, PV_NONE,
996 {(char_u *)"", (char_u *)0L}
997#else
998 (char_u *)NULL, PV_NONE,
999 {(char_u *)0L, (char_u *)0L}
1000#endif
1001 SCTX_INIT},
1002 {"diffopt", "dip", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_ONECOMMA
1003 |P_NODUP,
1004#ifdef FEAT_DIFF
1005 (char_u *)&p_dip, PV_NONE,
1006 {(char_u *)"internal,filler", (char_u *)NULL}
1007#else
1008 (char_u *)NULL, PV_NONE,
1009 {(char_u *)"", (char_u *)NULL}
1010#endif
1011 SCTX_INIT},
1012 {"digraph", "dg", P_BOOL|P_VI_DEF|P_VIM,
1013#ifdef FEAT_DIGRAPHS
1014 (char_u *)&p_dg, PV_NONE,
1015#else
1016 (char_u *)NULL, PV_NONE,
1017#endif
1018 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1019 {"directory", "dir", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA
1020 |P_NODUP|P_SECURE,
1021 (char_u *)&p_dir, PV_NONE,
1022 {(char_u *)DFLT_DIR, (char_u *)0L} SCTX_INIT},
1023 {"display", "dy", P_STRING|P_VI_DEF|P_ONECOMMA|P_RALL|P_NODUP,
1024 (char_u *)&p_dy, PV_NONE,
1025 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1026 {"eadirection", "ead", P_STRING|P_VI_DEF,
1027 (char_u *)&p_ead, PV_NONE,
1028 {(char_u *)"both", (char_u *)0L}
1029 SCTX_INIT},
1030 {"edcompatible","ed", P_BOOL|P_VI_DEF,
1031 (char_u *)&p_ed, PV_NONE,
1032 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1033 {"emoji", "emo", P_BOOL|P_VI_DEF|P_RCLR,
1034 (char_u *)&p_emoji, PV_NONE,
1035 {(char_u *)TRUE, (char_u *)0L}
1036 SCTX_INIT},
1037 {"encoding", "enc", P_STRING|P_VI_DEF|P_RCLR|P_NO_ML,
1038 (char_u *)&p_enc, PV_NONE,
1039 {(char_u *)ENC_DFLT, (char_u *)0L}
1040 SCTX_INIT},
1041 {"endofline", "eol", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
1042 (char_u *)&p_eol, PV_EOL,
1043 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1044 {"equalalways", "ea", P_BOOL|P_VI_DEF|P_RALL,
1045 (char_u *)&p_ea, PV_NONE,
1046 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1047 {"equalprg", "ep", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1048 (char_u *)&p_ep, PV_EP,
1049 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1050 {"errorbells", "eb", P_BOOL|P_VI_DEF,
1051 (char_u *)&p_eb, PV_NONE,
1052 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1053 {"errorfile", "ef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1054#ifdef FEAT_QUICKFIX
1055 (char_u *)&p_ef, PV_NONE,
1056 {(char_u *)DFLT_ERRORFILE, (char_u *)0L}
1057#else
1058 (char_u *)NULL, PV_NONE,
1059 {(char_u *)NULL, (char_u *)0L}
1060#endif
1061 SCTX_INIT},
1062 {"errorformat", "efm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1063#ifdef FEAT_QUICKFIX
1064 (char_u *)&p_efm, PV_EFM,
1065 {(char_u *)DFLT_EFM, (char_u *)0L}
1066#else
1067 (char_u *)NULL, PV_NONE,
1068 {(char_u *)NULL, (char_u *)0L}
1069#endif
1070 SCTX_INIT},
1071 {"esckeys", "ek", P_BOOL|P_VIM,
1072 (char_u *)&p_ek, PV_NONE,
1073 {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
1074 {"eventignore", "ei", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1075 (char_u *)&p_ei, PV_NONE,
1076 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1077 {"expandtab", "et", P_BOOL|P_VI_DEF|P_VIM,
1078 (char_u *)&p_et, PV_ET,
1079 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1080 {"exrc", "ex", P_BOOL|P_VI_DEF|P_SECURE,
1081 (char_u *)&p_exrc, PV_NONE,
1082 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1083 {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF
1084 |P_NO_MKRC,
1085 (char_u *)&p_fenc, PV_FENC,
1086 {(char_u *)"", (char_u *)0L}
1087 SCTX_INIT},
1088 {"fileencodings","fencs", P_STRING|P_VI_DEF|P_ONECOMMA,
1089 (char_u *)&p_fencs, PV_NONE,
1090 {(char_u *)"ucs-bom", (char_u *)0L}
1091 SCTX_INIT},
1092 {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC
1093 |P_CURSWANT,
1094 (char_u *)&p_ff, PV_FF,
1095 {(char_u *)DFLT_FF, (char_u *)0L} SCTX_INIT},
1096 {"fileformats", "ffs", P_STRING|P_VIM|P_ONECOMMA|P_NODUP,
1097 (char_u *)&p_ffs, PV_NONE,
1098 {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}
1099 SCTX_INIT},
1100 {"fileignorecase", "fic", P_BOOL|P_VI_DEF,
1101 (char_u *)&p_fic, PV_NONE,
1102 {
1103#ifdef CASE_INSENSITIVE_FILENAME
1104 (char_u *)TRUE,
1105#else
1106 (char_u *)FALSE,
1107#endif
1108 (char_u *)0L} SCTX_INIT},
1109 {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
1110 (char_u *)&p_ft, PV_FT,
1111 {(char_u *)"", (char_u *)0L}
1112 SCTX_INIT},
1113 {"fillchars", "fcs", P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP,
1114 (char_u *)&p_fcs, PV_NONE,
1115 {(char_u *)"vert:|,fold:-", (char_u *)0L}
1116 SCTX_INIT},
1117 {"fixendofline", "fixeol", P_BOOL|P_VI_DEF|P_RSTAT,
1118 (char_u *)&p_fixeol, PV_FIXEOL,
1119 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1120 {"fkmap", "fk", P_BOOL|P_VI_DEF,
1121 (char_u *)NULL, PV_NONE,
1122 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1123 {"flash", "fl", P_BOOL|P_VI_DEF,
1124 (char_u *)NULL, PV_NONE,
1125 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1126 {"foldclose", "fcl", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN,
1127#ifdef FEAT_FOLDING
1128 (char_u *)&p_fcl, PV_NONE,
1129 {(char_u *)"", (char_u *)0L}
1130#else
1131 (char_u *)NULL, PV_NONE,
1132 {(char_u *)NULL, (char_u *)0L}
1133#endif
1134 SCTX_INIT},
1135 {"foldcolumn", "fdc", P_NUM|P_VI_DEF|P_RWIN,
1136#ifdef FEAT_FOLDING
1137 (char_u *)VAR_WIN, PV_FDC,
1138 {(char_u *)FALSE, (char_u *)0L}
1139#else
1140 (char_u *)NULL, PV_NONE,
1141 {(char_u *)NULL, (char_u *)0L}
1142#endif
1143 SCTX_INIT},
1144 {"foldenable", "fen", P_BOOL|P_VI_DEF|P_RWIN,
1145#ifdef FEAT_FOLDING
1146 (char_u *)VAR_WIN, PV_FEN,
1147 {(char_u *)TRUE, (char_u *)0L}
1148#else
1149 (char_u *)NULL, PV_NONE,
1150 {(char_u *)NULL, (char_u *)0L}
1151#endif
1152 SCTX_INIT},
1153 {"foldexpr", "fde", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN|P_MLE,
1154#if defined(FEAT_FOLDING) && defined(FEAT_EVAL)
1155 (char_u *)VAR_WIN, PV_FDE,
1156 {(char_u *)"0", (char_u *)NULL}
1157#else
1158 (char_u *)NULL, PV_NONE,
1159 {(char_u *)NULL, (char_u *)0L}
1160#endif
1161 SCTX_INIT},
1162 {"foldignore", "fdi", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN,
1163#ifdef FEAT_FOLDING
1164 (char_u *)VAR_WIN, PV_FDI,
1165 {(char_u *)"#", (char_u *)NULL}
1166#else
1167 (char_u *)NULL, PV_NONE,
1168 {(char_u *)NULL, (char_u *)0L}
1169#endif
1170 SCTX_INIT},
1171 {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN,
1172#ifdef FEAT_FOLDING
1173 (char_u *)VAR_WIN, PV_FDL,
1174 {(char_u *)0L, (char_u *)0L}
1175#else
1176 (char_u *)NULL, PV_NONE,
1177 {(char_u *)NULL, (char_u *)0L}
1178#endif
1179 SCTX_INIT},
1180 {"foldlevelstart","fdls", P_NUM|P_VI_DEF|P_CURSWANT,
1181#ifdef FEAT_FOLDING
1182 (char_u *)&p_fdls, PV_NONE,
1183 {(char_u *)-1L, (char_u *)0L}
1184#else
1185 (char_u *)NULL, PV_NONE,
1186 {(char_u *)NULL, (char_u *)0L}
1187#endif
1188 SCTX_INIT},
1189 {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
1190 P_RWIN|P_ONECOMMA|P_NODUP,
1191#ifdef FEAT_FOLDING
1192 (char_u *)VAR_WIN, PV_FMR,
1193 {(char_u *)"{{{,}}}", (char_u *)NULL}
1194#else
1195 (char_u *)NULL, PV_NONE,
1196 {(char_u *)NULL, (char_u *)0L}
1197#endif
1198 SCTX_INIT},
1199 {"foldmethod", "fdm", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN,
1200#ifdef FEAT_FOLDING
1201 (char_u *)VAR_WIN, PV_FDM,
1202 {(char_u *)"manual", (char_u *)NULL}
1203#else
1204 (char_u *)NULL, PV_NONE,
1205 {(char_u *)NULL, (char_u *)0L}
1206#endif
1207 SCTX_INIT},
1208 {"foldminlines","fml", P_NUM|P_VI_DEF|P_RWIN,
1209#ifdef FEAT_FOLDING
1210 (char_u *)VAR_WIN, PV_FML,
1211 {(char_u *)1L, (char_u *)0L}
1212#else
1213 (char_u *)NULL, PV_NONE,
1214 {(char_u *)NULL, (char_u *)0L}
1215#endif
1216 SCTX_INIT},
1217 {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN,
1218#ifdef FEAT_FOLDING
1219 (char_u *)VAR_WIN, PV_FDN,
1220 {(char_u *)20L, (char_u *)0L}
1221#else
1222 (char_u *)NULL, PV_NONE,
1223 {(char_u *)NULL, (char_u *)0L}
1224#endif
1225 SCTX_INIT},
1226 {"foldopen", "fdo", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_CURSWANT,
1227#ifdef FEAT_FOLDING
1228 (char_u *)&p_fdo, PV_NONE,
1229 {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
1230 (char_u *)0L}
1231#else
1232 (char_u *)NULL, PV_NONE,
1233 {(char_u *)NULL, (char_u *)0L}
1234#endif
1235 SCTX_INIT},
1236 {"foldtext", "fdt", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN|P_MLE,
1237#if defined(FEAT_FOLDING) && defined(FEAT_EVAL)
1238 (char_u *)VAR_WIN, PV_FDT,
1239 {(char_u *)"foldtext()", (char_u *)NULL}
1240#else
1241 (char_u *)NULL, PV_NONE,
1242 {(char_u *)NULL, (char_u *)0L}
1243#endif
1244 SCTX_INIT},
1245 {"formatexpr", "fex", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
1246#ifdef FEAT_EVAL
1247 (char_u *)&p_fex, PV_FEX,
1248 {(char_u *)"", (char_u *)0L}
1249#else
1250 (char_u *)NULL, PV_NONE,
1251 {(char_u *)0L, (char_u *)0L}
1252#endif
1253 SCTX_INIT},
1254 {"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST,
1255 (char_u *)&p_fo, PV_FO,
1256 {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM}
1257 SCTX_INIT},
1258 {"formatlistpat","flp", P_STRING|P_ALLOCED|P_VI_DEF,
1259 (char_u *)&p_flp, PV_FLP,
1260 {(char_u *)"^\\s*\\d\\+[\\]:.)}\\t ]\\s*",
1261 (char_u *)0L} SCTX_INIT},
1262 {"formatprg", "fp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1263 (char_u *)&p_fp, PV_FP,
1264 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1265 {"fsync", "fs", P_BOOL|P_SECURE|P_VI_DEF,
1266#ifdef HAVE_FSYNC
1267 (char_u *)&p_fs, PV_NONE,
1268 {(char_u *)TRUE, (char_u *)0L}
1269#else
1270 (char_u *)NULL, PV_NONE,
1271 {(char_u *)FALSE, (char_u *)0L}
1272#endif
1273 SCTX_INIT},
1274 {"gdefault", "gd", P_BOOL|P_VI_DEF|P_VIM,
1275 (char_u *)&p_gd, PV_NONE,
1276 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1277 {"graphic", "gr", P_BOOL|P_VI_DEF,
1278 (char_u *)NULL, PV_NONE,
1279 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1280 {"grepformat", "gfm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1281#ifdef FEAT_QUICKFIX
1282 (char_u *)&p_gefm, PV_NONE,
1283 {(char_u *)DFLT_GREPFORMAT, (char_u *)0L}
1284#else
1285 (char_u *)NULL, PV_NONE,
1286 {(char_u *)NULL, (char_u *)0L}
1287#endif
1288 SCTX_INIT},
1289 {"grepprg", "gp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1290#ifdef FEAT_QUICKFIX
1291 (char_u *)&p_gp, PV_GP,
1292 {
1293# ifdef MSWIN
1294 // may be changed to "grep -n" in os_win32.c
1295 (char_u *)"findstr /n",
1296# else
1297# ifdef UNIX
1298 // Add an extra file name so that grep will always
1299 // insert a file name in the match line.
1300 (char_u *)"grep -n $* /dev/null",
1301# else
1302# ifdef VMS
1303 (char_u *)"SEARCH/NUMBERS ",
1304# else
1305 (char_u *)"grep -n ",
1306# endif
1307# endif
1308# endif
1309 (char_u *)0L}
1310#else
1311 (char_u *)NULL, PV_NONE,
1312 {(char_u *)NULL, (char_u *)0L}
1313#endif
1314 SCTX_INIT},
1315 {"guicursor", "gcr", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1316#ifdef CURSOR_SHAPE
1317 (char_u *)&p_guicursor, PV_NONE,
1318 {
1319# ifdef FEAT_GUI
1320 (char_u *)"n-v-c:block-Cursor/lCursor,ve:ver35-Cursor,o:hor50-Cursor,i-ci:ver25-Cursor/lCursor,r-cr:hor20-Cursor/lCursor,sm:block-Cursor-blinkwait175-blinkoff150-blinkon175",
1321# else // Win32 console
1322 (char_u *)"n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block",
1323# endif
1324 (char_u *)0L}
1325#else
1326 (char_u *)NULL, PV_NONE,
1327 {(char_u *)NULL, (char_u *)0L}
1328#endif
1329 SCTX_INIT},
1330 {"guifont", "gfn", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
1331#ifdef FEAT_GUI
1332 (char_u *)&p_guifont, PV_NONE,
1333 {(char_u *)"", (char_u *)0L}
1334#else
1335 (char_u *)NULL, PV_NONE,
1336 {(char_u *)NULL, (char_u *)0L}
1337#endif
1338 SCTX_INIT},
1339 {"guifontset", "gfs", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA,
1340#if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
1341 (char_u *)&p_guifontset, PV_NONE,
1342 {(char_u *)"", (char_u *)0L}
1343#else
1344 (char_u *)NULL, PV_NONE,
1345 {(char_u *)NULL, (char_u *)0L}
1346#endif
1347 SCTX_INIT},
1348 {"guifontwide", "gfw", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
1349#if defined(FEAT_GUI)
1350 (char_u *)&p_guifontwide, PV_NONE,
1351 {(char_u *)"", (char_u *)0L}
1352#else
1353 (char_u *)NULL, PV_NONE,
1354 {(char_u *)NULL, (char_u *)0L}
1355#endif
1356 SCTX_INIT},
1357 {"guiheadroom", "ghr", P_NUM|P_VI_DEF,
1358#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
1359 (char_u *)&p_ghr, PV_NONE,
1360#else
1361 (char_u *)NULL, PV_NONE,
1362#endif
1363 {(char_u *)50L, (char_u *)0L} SCTX_INIT},
1364 {"guioptions", "go", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST,
1365#if defined(FEAT_GUI)
1366 (char_u *)&p_go, PV_NONE,
1367# if defined(UNIX) && !defined(FEAT_GUI_MAC)
1368 {(char_u *)"aegimrLtT", (char_u *)0L}
1369# else
1370 {(char_u *)"egmrLtT", (char_u *)0L}
1371# endif
1372#else
1373 (char_u *)NULL, PV_NONE,
1374 {(char_u *)NULL, (char_u *)0L}
1375#endif
1376 SCTX_INIT},
1377 {"guipty", NULL, P_BOOL|P_VI_DEF,
1378#if defined(FEAT_GUI)
1379 (char_u *)&p_guipty, PV_NONE,
1380#else
1381 (char_u *)NULL, PV_NONE,
1382#endif
1383 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1384 {"guitablabel", "gtl", P_STRING|P_VI_DEF|P_RWIN|P_MLE,
1385#if defined(FEAT_GUI_TABLINE)
1386 (char_u *)&p_gtl, PV_NONE,
1387 {(char_u *)"", (char_u *)0L}
1388#else
1389 (char_u *)NULL, PV_NONE,
1390 {(char_u *)NULL, (char_u *)0L}
1391#endif
1392 SCTX_INIT},
1393 {"guitabtooltip", "gtt", P_STRING|P_VI_DEF|P_RWIN,
1394#if defined(FEAT_GUI_TABLINE)
1395 (char_u *)&p_gtt, PV_NONE,
1396 {(char_u *)"", (char_u *)0L}
1397#else
1398 (char_u *)NULL, PV_NONE,
1399 {(char_u *)NULL, (char_u *)0L}
1400#endif
1401 SCTX_INIT},
1402 {"hardtabs", "ht", P_NUM|P_VI_DEF,
1403 (char_u *)NULL, PV_NONE,
1404 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
1405 {"helpfile", "hf", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1406 (char_u *)&p_hf, PV_NONE,
1407 {(char_u *)DFLT_HELPFILE, (char_u *)0L}
1408 SCTX_INIT},
1409 {"helpheight", "hh", P_NUM|P_VI_DEF,
1410 (char_u *)&p_hh, PV_NONE,
1411 {(char_u *)20L, (char_u *)0L} SCTX_INIT},
1412 {"helplang", "hlg", P_STRING|P_VI_DEF|P_ONECOMMA,
1413#ifdef FEAT_MULTI_LANG
1414 (char_u *)&p_hlg, PV_NONE,
1415 {(char_u *)"", (char_u *)0L}
1416#else
1417 (char_u *)NULL, PV_NONE,
1418 {(char_u *)0L, (char_u *)0L}
1419#endif
1420 SCTX_INIT},
1421 {"hidden", "hid", P_BOOL|P_VI_DEF,
1422 (char_u *)&p_hid, PV_NONE,
1423 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1424 {"highlight", "hl", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP,
1425 (char_u *)&p_hl, PV_NONE,
1426 {(char_u *)HIGHLIGHT_INIT, (char_u *)0L}
1427 SCTX_INIT},
1428 {"history", "hi", P_NUM|P_VIM,
1429 (char_u *)&p_hi, PV_NONE,
1430 {(char_u *)0L, (char_u *)50L} SCTX_INIT},
1431 {"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM,
1432#ifdef FEAT_RIGHTLEFT
1433 (char_u *)&p_hkmap, PV_NONE,
1434#else
1435 (char_u *)NULL, PV_NONE,
1436#endif
1437 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1438 {"hkmapp", "hkp", P_BOOL|P_VI_DEF|P_VIM,
1439#ifdef FEAT_RIGHTLEFT
1440 (char_u *)&p_hkmapp, PV_NONE,
1441#else
1442 (char_u *)NULL, PV_NONE,
1443#endif
1444 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1445 {"hlsearch", "hls", P_BOOL|P_VI_DEF|P_VIM|P_RALL,
1446 (char_u *)&p_hls, PV_NONE,
1447 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1448 {"icon", NULL, P_BOOL|P_VI_DEF,
1449#ifdef FEAT_TITLE
1450 (char_u *)&p_icon, PV_NONE,
1451#else
1452 (char_u *)NULL, PV_NONE,
1453#endif
1454 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1455 {"iconstring", NULL, P_STRING|P_VI_DEF|P_MLE,
1456#ifdef FEAT_TITLE
1457 (char_u *)&p_iconstring, PV_NONE,
1458#else
1459 (char_u *)NULL, PV_NONE,
1460#endif
1461 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1462 {"ignorecase", "ic", P_BOOL|P_VI_DEF,
1463 (char_u *)&p_ic, PV_NONE,
1464 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1465 {"imactivatefunc","imaf",P_STRING|P_VI_DEF|P_SECURE,
1466#if defined(FEAT_EVAL)
1467 (char_u *)&p_imaf, PV_NONE,
1468 {(char_u *)"", (char_u *)NULL}
1469# else
1470 (char_u *)NULL, PV_NONE,
1471 {(char_u *)NULL, (char_u *)0L}
1472# endif
1473 SCTX_INIT},
1474 {"imactivatekey","imak",P_STRING|P_VI_DEF,
1475#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
1476 (char_u *)&p_imak, PV_NONE,
1477#else
1478 (char_u *)NULL, PV_NONE,
1479#endif
1480 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1481 {"imcmdline", "imc", P_BOOL|P_VI_DEF,
1482 (char_u *)&p_imcmdline, PV_NONE,
1483 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1484 {"imdisable", "imd", P_BOOL|P_VI_DEF,
1485 (char_u *)&p_imdisable, PV_NONE,
1486#ifdef __sgi
1487 {(char_u *)TRUE, (char_u *)0L}
1488#else
1489 {(char_u *)FALSE, (char_u *)0L}
1490#endif
1491 SCTX_INIT},
1492 {"iminsert", "imi", P_NUM|P_VI_DEF,
1493 (char_u *)&p_iminsert, PV_IMI,
1494 {(char_u *)B_IMODE_NONE, (char_u *)0L}
1495 SCTX_INIT},
1496 {"imsearch", "ims", P_NUM|P_VI_DEF,
1497 (char_u *)&p_imsearch, PV_IMS,
1498 {(char_u *)B_IMODE_USE_INSERT, (char_u *)0L}
1499 SCTX_INIT},
1500 {"imstatusfunc","imsf",P_STRING|P_VI_DEF|P_SECURE,
1501#if defined(FEAT_EVAL)
1502 (char_u *)&p_imsf, PV_NONE,
1503 {(char_u *)"", (char_u *)NULL}
1504#else
1505 (char_u *)NULL, PV_NONE,
1506 {(char_u *)NULL, (char_u *)0L}
1507#endif
1508 SCTX_INIT},
1509 {"imstyle", "imst", P_NUM|P_VI_DEF|P_SECURE,
1510#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
1511 (char_u *)&p_imst, PV_NONE,
1512 {(char_u *)IM_OVER_THE_SPOT, (char_u *)0L}
1513#else
1514 (char_u *)NULL, PV_NONE,
1515 {(char_u *)0L, (char_u *)0L}
1516#endif
1517 SCTX_INIT},
1518 {"include", "inc", P_STRING|P_ALLOCED|P_VI_DEF,
1519#ifdef FEAT_FIND_ID
1520 (char_u *)&p_inc, PV_INC,
1521 {(char_u *)"^\\s*#\\s*include", (char_u *)0L}
1522#else
1523 (char_u *)NULL, PV_NONE,
1524 {(char_u *)0L, (char_u *)0L}
1525#endif
1526 SCTX_INIT},
1527 {"includeexpr", "inex", P_STRING|P_ALLOCED|P_VI_DEF|P_MLE,
1528#if defined(FEAT_FIND_ID) && defined(FEAT_EVAL)
1529 (char_u *)&p_inex, PV_INEX,
1530 {(char_u *)"", (char_u *)0L}
1531#else
1532 (char_u *)NULL, PV_NONE,
1533 {(char_u *)0L, (char_u *)0L}
1534#endif
1535 SCTX_INIT},
1536 {"incsearch", "is", P_BOOL|P_VI_DEF|P_VIM,
1537 (char_u *)&p_is, PV_NONE,
1538 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1539 {"indentexpr", "inde", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM|P_MLE,
1540#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
1541 (char_u *)&p_inde, PV_INDE,
1542 {(char_u *)"", (char_u *)0L}
1543#else
1544 (char_u *)NULL, PV_NONE,
1545 {(char_u *)0L, (char_u *)0L}
1546#endif
1547 SCTX_INIT},
1548 {"indentkeys", "indk", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
1549#if defined(FEAT_CINDENT) && defined(FEAT_EVAL)
1550 (char_u *)&p_indk, PV_INDK,
1551 {INDENTKEYS_DEFAULT, (char_u *)0L}
1552#else
1553 (char_u *)NULL, PV_NONE,
1554 {(char_u *)0L, (char_u *)0L}
1555#endif
1556 SCTX_INIT},
1557 {"infercase", "inf", P_BOOL|P_VI_DEF,
1558 (char_u *)&p_inf, PV_INF,
1559 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1560 {"insertmode", "im", P_BOOL|P_VI_DEF|P_VIM,
1561 (char_u *)&p_im, PV_NONE,
1562 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1563 {"isfname", "isf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
1564 (char_u *)&p_isf, PV_NONE,
1565 {
1566#ifdef BACKSLASH_IN_FILENAME
1567 // Excluded are: & and ^ are special in cmd.exe
1568 // ( and ) are used in text separating fnames
1569 (char_u *)"@,48-57,/,\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=",
1570#else
1571# ifdef AMIGA
1572 (char_u *)"@,48-57,/,.,-,_,+,,,$,:",
1573# else
1574# ifdef VMS
1575 (char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,<,>,[,],:,;,~",
1576# else // UNIX et al.
1577# ifdef EBCDIC
1578 (char_u *)"@,240-249,/,.,-,_,+,,,#,$,%,~,=",
1579# else
1580 (char_u *)"@,48-57,/,.,-,_,+,,,#,$,%,~,=",
1581# endif
1582# endif
1583# endif
1584#endif
1585 (char_u *)0L} SCTX_INIT},
1586 {"isident", "isi", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
1587 (char_u *)&p_isi, PV_NONE,
1588 {
1589#if defined(MSWIN)
1590 (char_u *)"@,48-57,_,128-167,224-235",
1591#else
1592# ifdef EBCDIC
1593 // TODO: EBCDIC Check this! @ == isalpha()
1594 (char_u *)"@,240-249,_,66-73,81-89,98-105,"
1595 "112-120,128,140-142,156,158,172,"
1596 "174,186,191,203-207,219-225,235-239,"
1597 "251-254",
1598# else
1599 (char_u *)"@,48-57,_,192-255",
1600# endif
1601#endif
1602 (char_u *)0L} SCTX_INIT},
1603 {"iskeyword", "isk", P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP,
1604 (char_u *)&p_isk, PV_ISK,
1605 {
1606#ifdef EBCDIC
1607 (char_u *)"@,240-249,_",
1608 // TODO: EBCDIC Check this! @ == isalpha()
1609 (char_u *)"@,240-249,_,66-73,81-89,98-105,"
1610 "112-120,128,140-142,156,158,172,"
1611 "174,186,191,203-207,219-225,235-239,"
1612 "251-254",
1613#else
1614 (char_u *)"@,48-57,_",
1615# if defined(MSWIN)
1616 (char_u *)"@,48-57,_,128-167,224-235"
1617# else
1618 ISK_LATIN1
1619# endif
1620#endif
1621 } SCTX_INIT},
1622 {"isprint", "isp", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP,
1623 (char_u *)&p_isp, PV_NONE,
1624 {
1625#if defined(MSWIN) || defined(VMS)
1626 (char_u *)"@,~-255",
1627#else
1628# ifdef EBCDIC
1629 // all chars above 63 are printable
1630 (char_u *)"63-255",
1631# else
1632 ISP_LATIN1,
1633# endif
1634#endif
1635 (char_u *)0L} SCTX_INIT},
1636 {"joinspaces", "js", P_BOOL|P_VI_DEF|P_VIM,
1637 (char_u *)&p_js, PV_NONE,
1638 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1639 {"key", NULL, P_STRING|P_ALLOCED|P_VI_DEF|P_NO_MKRC,
1640#ifdef FEAT_CRYPT
1641 (char_u *)&p_key, PV_KEY,
1642 {(char_u *)"", (char_u *)0L}
1643#else
1644 (char_u *)NULL, PV_NONE,
1645 {(char_u *)0L, (char_u *)0L}
1646#endif
1647 SCTX_INIT},
1648 {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME|P_PRI_MKRC,
1649#ifdef FEAT_KEYMAP
1650 (char_u *)&p_keymap, PV_KMAP,
1651 {(char_u *)"", (char_u *)0L}
1652#else
1653 (char_u *)NULL, PV_NONE,
1654 {(char_u *)"", (char_u *)0L}
1655#endif
1656 SCTX_INIT},
1657 {"keymodel", "km", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1658 (char_u *)&p_km, PV_NONE,
1659 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1660 {"keywordprg", "kp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1661 (char_u *)&p_kp, PV_KP,
1662 {
1663#ifdef MSWIN
1664 (char_u *)":help",
1665#else
1666# ifdef VMS
1667 (char_u *)"help",
1668# else
1669# ifdef USEMAN_S
1670 (char_u *)"man -s",
1671# else
1672 (char_u *)"man",
1673# endif
1674# endif
1675#endif
1676 (char_u *)0L} SCTX_INIT},
1677 {"langmap", "lmap", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_SECURE,
1678#ifdef FEAT_LANGMAP
1679 (char_u *)&p_langmap, PV_NONE,
1680 {(char_u *)"", (char_u *)0L}
1681#else
1682 (char_u *)NULL, PV_NONE,
1683 {(char_u *)NULL, (char_u *)0L}
1684#endif
1685 SCTX_INIT},
1686 {"langmenu", "lm", P_STRING|P_VI_DEF|P_NFNAME,
1687#if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG)
1688 (char_u *)&p_lm, PV_NONE,
1689#else
1690 (char_u *)NULL, PV_NONE,
1691#endif
1692 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1693 {"langnoremap", "lnr", P_BOOL|P_VI_DEF,
1694#ifdef FEAT_LANGMAP
1695 (char_u *)&p_lnr, PV_NONE,
1696#else
1697 (char_u *)NULL, PV_NONE,
1698#endif
1699 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1700 {"langremap", "lrm", P_BOOL|P_VI_DEF,
1701#ifdef FEAT_LANGMAP
1702 (char_u *)&p_lrm, PV_NONE,
1703#else
1704 (char_u *)NULL, PV_NONE,
1705#endif
1706 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1707 {"laststatus", "ls", P_NUM|P_VI_DEF|P_RALL,
1708 (char_u *)&p_ls, PV_NONE,
1709 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
1710 {"lazyredraw", "lz", P_BOOL|P_VI_DEF,
1711 (char_u *)&p_lz, PV_NONE,
1712 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1713 {"linebreak", "lbr", P_BOOL|P_VI_DEF|P_RWIN,
1714#ifdef FEAT_LINEBREAK
1715 (char_u *)VAR_WIN, PV_LBR,
1716#else
1717 (char_u *)NULL, PV_NONE,
1718#endif
1719 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1720 {"lines", NULL, P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
1721 (char_u *)&Rows, PV_NONE,
1722 {
1723#if defined(MSWIN)
1724 (char_u *)25L,
1725#else
1726 (char_u *)24L,
1727#endif
1728 (char_u *)0L} SCTX_INIT},
1729 {"linespace", "lsp", P_NUM|P_VI_DEF|P_RCLR,
1730#ifdef FEAT_GUI
1731 (char_u *)&p_linespace, PV_NONE,
1732#else
1733 (char_u *)NULL, PV_NONE,
1734#endif
1735#ifdef FEAT_GUI_MSWIN
1736 {(char_u *)1L, (char_u *)0L}
1737#else
1738 {(char_u *)0L, (char_u *)0L}
1739#endif
1740 SCTX_INIT},
1741 {"lisp", NULL, P_BOOL|P_VI_DEF,
1742#ifdef FEAT_LISP
1743 (char_u *)&p_lisp, PV_LISP,
1744#else
1745 (char_u *)NULL, PV_NONE,
1746#endif
1747 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1748 {"lispwords", "lw", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1749#ifdef FEAT_LISP
1750 (char_u *)&p_lispwords, PV_LW,
1751 {(char_u *)LISPWORD_VALUE, (char_u *)0L}
1752#else
1753 (char_u *)NULL, PV_NONE,
1754 {(char_u *)"", (char_u *)0L}
1755#endif
1756 SCTX_INIT},
1757 {"list", NULL, P_BOOL|P_VI_DEF|P_RWIN,
1758 (char_u *)VAR_WIN, PV_LIST,
1759 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1760 {"listchars", "lcs", P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP,
1761 (char_u *)&p_lcs, PV_NONE,
1762 {(char_u *)"eol:$", (char_u *)0L} SCTX_INIT},
1763 {"loadplugins", "lpl", P_BOOL|P_VI_DEF,
1764 (char_u *)&p_lpl, PV_NONE,
1765 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1766 {"luadll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1767#if defined(DYNAMIC_LUA)
1768 (char_u *)&p_luadll, PV_NONE,
1769 {(char_u *)DYNAMIC_LUA_DLL, (char_u *)0L}
1770#else
1771 (char_u *)NULL, PV_NONE,
1772 {(char_u *)"", (char_u *)0L}
1773#endif
1774 SCTX_INIT},
1775 {"macatsui", NULL, P_BOOL|P_VI_DEF|P_RCLR,
1776#ifdef FEAT_GUI_MAC
1777 (char_u *)&p_macatsui, PV_NONE,
1778 {(char_u *)TRUE, (char_u *)0L}
1779#else
1780 (char_u *)NULL, PV_NONE,
1781 {(char_u *)"", (char_u *)0L}
1782#endif
1783 SCTX_INIT},
1784 {"magic", NULL, P_BOOL|P_VI_DEF,
1785 (char_u *)&p_magic, PV_NONE,
1786 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1787 {"makeef", "mef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1788#ifdef FEAT_QUICKFIX
1789 (char_u *)&p_mef, PV_NONE,
1790 {(char_u *)"", (char_u *)0L}
1791#else
1792 (char_u *)NULL, PV_NONE,
1793 {(char_u *)NULL, (char_u *)0L}
1794#endif
1795 SCTX_INIT},
1796 {"makeencoding","menc", P_STRING|P_VI_DEF,
1797 (char_u *)&p_menc, PV_MENC,
1798 {(char_u *)"", (char_u *)0L}
1799 SCTX_INIT},
1800 {"makeprg", "mp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1801#ifdef FEAT_QUICKFIX
1802 (char_u *)&p_mp, PV_MP,
1803# ifdef VMS
1804 {(char_u *)"MMS", (char_u *)0L}
1805# else
1806 {(char_u *)"make", (char_u *)0L}
1807# endif
1808#else
1809 (char_u *)NULL, PV_NONE,
1810 {(char_u *)NULL, (char_u *)0L}
1811#endif
1812 SCTX_INIT},
1813 {"matchpairs", "mps", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
1814 (char_u *)&p_mps, PV_MPS,
1815 {(char_u *)"(:),{:},[:]", (char_u *)0L}
1816 SCTX_INIT},
1817 {"matchtime", "mat", P_NUM|P_VI_DEF,
1818 (char_u *)&p_mat, PV_NONE,
1819 {(char_u *)5L, (char_u *)0L} SCTX_INIT},
1820 {"maxcombine", "mco", P_NUM|P_VI_DEF|P_CURSWANT,
1821 (char_u *)&p_mco, PV_NONE,
1822 {(char_u *)2, (char_u *)0L} SCTX_INIT},
1823 {"maxfuncdepth", "mfd", P_NUM|P_VI_DEF,
1824#ifdef FEAT_EVAL
1825 (char_u *)&p_mfd, PV_NONE,
1826#else
1827 (char_u *)NULL, PV_NONE,
1828#endif
1829 {(char_u *)100L, (char_u *)0L} SCTX_INIT},
1830 {"maxmapdepth", "mmd", P_NUM|P_VI_DEF,
1831 (char_u *)&p_mmd, PV_NONE,
1832 {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
1833 {"maxmem", "mm", P_NUM|P_VI_DEF,
1834 (char_u *)&p_mm, PV_NONE,
1835 {(char_u *)DFLT_MAXMEM, (char_u *)0L}
1836 SCTX_INIT},
1837 {"maxmempattern","mmp", P_NUM|P_VI_DEF,
1838 (char_u *)&p_mmp, PV_NONE,
1839 {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
1840 {"maxmemtot", "mmt", P_NUM|P_VI_DEF,
1841 (char_u *)&p_mmt, PV_NONE,
1842 {(char_u *)DFLT_MAXMEMTOT, (char_u *)0L}
1843 SCTX_INIT},
1844 {"menuitems", "mis", P_NUM|P_VI_DEF,
1845#ifdef FEAT_MENU
1846 (char_u *)&p_mis, PV_NONE,
1847#else
1848 (char_u *)NULL, PV_NONE,
1849#endif
1850 {(char_u *)25L, (char_u *)0L} SCTX_INIT},
1851 {"mesg", NULL, P_BOOL|P_VI_DEF,
1852 (char_u *)NULL, PV_NONE,
1853 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1854 {"mkspellmem", "msm", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE,
1855#ifdef FEAT_SPELL
1856 (char_u *)&p_msm, PV_NONE,
1857 {(char_u *)"460000,2000,500", (char_u *)0L}
1858#else
1859 (char_u *)NULL, PV_NONE,
1860 {(char_u *)0L, (char_u *)0L}
1861#endif
1862 SCTX_INIT},
1863 {"modeline", "ml", P_BOOL|P_VIM,
1864 (char_u *)&p_ml, PV_ML,
1865 {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
1866 {"modelineexpr", "mle", P_BOOL|P_VI_DEF|P_SECURE,
1867 (char_u *)&p_mle, PV_NONE,
1868 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1869 {"modelines", "mls", P_NUM|P_VI_DEF,
1870 (char_u *)&p_mls, PV_NONE,
1871 {(char_u *)5L, (char_u *)0L} SCTX_INIT},
1872 {"modifiable", "ma", P_BOOL|P_VI_DEF|P_NOGLOB,
1873 (char_u *)&p_ma, PV_MA,
1874 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1875 {"modified", "mod", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT,
1876 (char_u *)&p_mod, PV_MOD,
1877 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1878 {"more", NULL, P_BOOL|P_VIM,
1879 (char_u *)&p_more, PV_NONE,
1880 {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
1881 {"mouse", NULL, P_STRING|P_VI_DEF|P_FLAGLIST,
1882 (char_u *)&p_mouse, PV_NONE,
1883 {
1884#if defined(MSWIN)
1885 (char_u *)"a",
1886#else
1887 (char_u *)"",
1888#endif
1889 (char_u *)0L} SCTX_INIT},
1890 {"mousefocus", "mousef", P_BOOL|P_VI_DEF,
1891#ifdef FEAT_GUI
1892 (char_u *)&p_mousef, PV_NONE,
1893#else
1894 (char_u *)NULL, PV_NONE,
1895#endif
1896 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1897 {"mousehide", "mh", P_BOOL|P_VI_DEF,
1898#ifdef FEAT_GUI
1899 (char_u *)&p_mh, PV_NONE,
1900#else
1901 (char_u *)NULL, PV_NONE,
1902#endif
1903 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
1904 {"mousemodel", "mousem", P_STRING|P_VI_DEF,
1905 (char_u *)&p_mousem, PV_NONE,
1906 {
1907#if defined(MSWIN)
1908 (char_u *)"popup",
1909#else
1910# if defined(MACOS_X)
1911 (char_u *)"popup_setpos",
1912# else
1913 (char_u *)"extend",
1914# endif
1915#endif
1916 (char_u *)0L} SCTX_INIT},
1917 {"mouseshape", "mouses", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
1918#ifdef FEAT_MOUSESHAPE
1919 (char_u *)&p_mouseshape, PV_NONE,
1920 {(char_u *)"i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow", (char_u *)0L}
1921#else
1922 (char_u *)NULL, PV_NONE,
1923 {(char_u *)NULL, (char_u *)0L}
1924#endif
1925 SCTX_INIT},
1926 {"mousetime", "mouset", P_NUM|P_VI_DEF,
1927 (char_u *)&p_mouset, PV_NONE,
1928 {(char_u *)500L, (char_u *)0L} SCTX_INIT},
1929 {"mzschemedll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1930#if defined(DYNAMIC_MZSCHEME)
1931 (char_u *)&p_mzschemedll, PV_NONE,
1932 {(char_u *)DYNAMIC_MZSCH_DLL, (char_u *)0L}
1933#else
1934 (char_u *)NULL, PV_NONE,
1935 {(char_u *)"", (char_u *)0L}
1936#endif
1937 SCTX_INIT},
1938 {"mzschemegcdll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
1939#if defined(DYNAMIC_MZSCHEME)
1940 (char_u *)&p_mzschemegcdll, PV_NONE,
1941 {(char_u *)DYNAMIC_MZGC_DLL, (char_u *)0L}
1942#else
1943 (char_u *)NULL, PV_NONE,
1944 {(char_u *)"", (char_u *)0L}
1945#endif
1946 SCTX_INIT},
1947 {"mzquantum", "mzq", P_NUM,
1948#ifdef FEAT_MZSCHEME
1949 (char_u *)&p_mzq, PV_NONE,
1950#else
1951 (char_u *)NULL, PV_NONE,
1952#endif
1953 {(char_u *)100L, (char_u *)100L} SCTX_INIT},
1954 {"novice", NULL, P_BOOL|P_VI_DEF,
1955 (char_u *)NULL, PV_NONE,
1956 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1957 {"nrformats", "nf", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP,
1958 (char_u *)&p_nf, PV_NF,
1959 {(char_u *)"bin,octal,hex", (char_u *)0L}
1960 SCTX_INIT},
1961 {"number", "nu", P_BOOL|P_VI_DEF|P_RWIN,
1962 (char_u *)VAR_WIN, PV_NU,
1963 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1964 {"numberwidth", "nuw", P_NUM|P_RWIN|P_VIM,
1965#ifdef FEAT_LINEBREAK
1966 (char_u *)VAR_WIN, PV_NUW,
1967#else
1968 (char_u *)NULL, PV_NONE,
1969#endif
1970 {(char_u *)8L, (char_u *)4L} SCTX_INIT},
1971 {"omnifunc", "ofu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
1972#ifdef FEAT_COMPL_FUNC
1973 (char_u *)&p_ofu, PV_OFU,
1974 {(char_u *)"", (char_u *)0L}
1975#else
1976 (char_u *)NULL, PV_NONE,
1977 {(char_u *)0L, (char_u *)0L}
1978#endif
1979 SCTX_INIT},
1980 {"open", NULL, P_BOOL|P_VI_DEF,
1981 (char_u *)NULL, PV_NONE,
1982 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1983 {"opendevice", "odev", P_BOOL|P_VI_DEF,
1984#if defined(MSWIN)
1985 (char_u *)&p_odev, PV_NONE,
1986#else
1987 (char_u *)NULL, PV_NONE,
1988#endif
1989 {(char_u *)FALSE, (char_u *)FALSE}
1990 SCTX_INIT},
1991 {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE,
1992 (char_u *)&p_opfunc, PV_NONE,
1993 {(char_u *)"", (char_u *)0L} SCTX_INIT},
1994 {"optimize", "opt", P_BOOL|P_VI_DEF,
1995 (char_u *)NULL, PV_NONE,
1996 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
1997 {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF,
1998 (char_u *)NULL, PV_NONE,
1999 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2000 {"packpath", "pp", P_STRING|P_VI_DEF|P_EXPAND|P_ONECOMMA|P_NODUP
2001 |P_SECURE,
2002 (char_u *)&p_pp, PV_NONE,
2003 {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L}
2004 SCTX_INIT},
2005 {"paragraphs", "para", P_STRING|P_VI_DEF,
2006 (char_u *)&p_para, PV_NONE,
2007 {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
2008 (char_u *)0L} SCTX_INIT},
2009 {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC,
2010 (char_u *)&p_paste, PV_NONE,
2011 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2012 {"pastetoggle", "pt", P_STRING|P_VI_DEF,
2013 (char_u *)&p_pt, PV_NONE,
2014 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2015 {"patchexpr", "pex", P_STRING|P_VI_DEF|P_SECURE,
2016#if defined(FEAT_DIFF) && defined(FEAT_EVAL)
2017 (char_u *)&p_pex, PV_NONE,
2018 {(char_u *)"", (char_u *)0L}
2019#else
2020 (char_u *)NULL, PV_NONE,
2021 {(char_u *)0L, (char_u *)0L}
2022#endif
2023 SCTX_INIT},
2024 {"patchmode", "pm", P_STRING|P_VI_DEF|P_NFNAME,
2025 (char_u *)&p_pm, PV_NONE,
2026 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2027 {"path", "pa", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP,
2028 (char_u *)&p_path, PV_PATH,
2029 {
2030#if defined(AMIGA) || defined(MSWIN)
2031 (char_u *)".,,",
2032#else
2033 (char_u *)".,/usr/include,,",
2034#endif
2035 (char_u *)0L} SCTX_INIT},
2036 {"perldll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2037#if defined(DYNAMIC_PERL)
2038 (char_u *)&p_perldll, PV_NONE,
2039 {(char_u *)DYNAMIC_PERL_DLL, (char_u *)0L}
2040#else
2041 (char_u *)NULL, PV_NONE,
2042 {(char_u *)0L, (char_u *)0L}
2043#endif
2044 SCTX_INIT},
2045 {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM,
2046 (char_u *)&p_pi, PV_PI,
2047 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2048 {"previewheight", "pvh", P_NUM|P_VI_DEF,
2049#if defined(FEAT_QUICKFIX)
2050 (char_u *)&p_pvh, PV_NONE,
2051#else
2052 (char_u *)NULL, PV_NONE,
2053#endif
2054 {(char_u *)12L, (char_u *)0L} SCTX_INIT},
2055 {"previewpopup", "pvp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
2056#ifdef FEAT_TEXT_PROP
2057 (char_u *)&p_pvp, PV_NONE,
2058 {(char_u *)"", (char_u *)0L}
2059#else
2060 (char_u *)NULL, PV_NONE,
2061 {(char_u *)NULL, (char_u *)0L}
2062#endif
2063 SCTX_INIT},
2064 {"previewwindow", "pvw", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
2065#if defined(FEAT_QUICKFIX)
2066 (char_u *)VAR_WIN, PV_PVW,
2067#else
2068 (char_u *)NULL, PV_NONE,
2069#endif
2070 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2071 {"printdevice", "pdev", P_STRING|P_VI_DEF|P_SECURE,
2072#ifdef FEAT_PRINTER
2073 (char_u *)&p_pdev, PV_NONE,
2074 {(char_u *)"", (char_u *)0L}
2075#else
2076 (char_u *)NULL, PV_NONE,
2077 {(char_u *)NULL, (char_u *)0L}
2078#endif
2079 SCTX_INIT},
2080 {"printencoding", "penc", P_STRING|P_VI_DEF,
2081#ifdef FEAT_POSTSCRIPT
2082 (char_u *)&p_penc, PV_NONE,
2083 {(char_u *)"", (char_u *)0L}
2084#else
2085 (char_u *)NULL, PV_NONE,
2086 {(char_u *)NULL, (char_u *)0L}
2087#endif
2088 SCTX_INIT},
2089 {"printexpr", "pexpr", P_STRING|P_VI_DEF|P_SECURE,
2090#ifdef FEAT_POSTSCRIPT
2091 (char_u *)&p_pexpr, PV_NONE,
2092 {(char_u *)"", (char_u *)0L}
2093#else
2094 (char_u *)NULL, PV_NONE,
2095 {(char_u *)NULL, (char_u *)0L}
2096#endif
2097 SCTX_INIT},
2098 {"printfont", "pfn", P_STRING|P_VI_DEF,
2099#ifdef FEAT_PRINTER
2100 (char_u *)&p_pfn, PV_NONE,
2101 {
2102# ifdef MSWIN
2103 (char_u *)"Courier_New:h10",
2104# else
2105 (char_u *)"courier",
2106# endif
2107 (char_u *)0L}
2108#else
2109 (char_u *)NULL, PV_NONE,
2110 {(char_u *)NULL, (char_u *)0L}
2111#endif
2112 SCTX_INIT},
2113 {"printheader", "pheader", P_STRING|P_VI_DEF|P_GETTEXT,
2114#ifdef FEAT_PRINTER
2115 (char_u *)&p_header, PV_NONE,
2116 // untranslated to avoid problems when 'encoding'
2117 // is changed
2118 {(char_u *)"%<%f%h%m%=Page %N", (char_u *)0L}
2119#else
2120 (char_u *)NULL, PV_NONE,
2121 {(char_u *)NULL, (char_u *)0L}
2122#endif
2123 SCTX_INIT},
2124 {"printmbcharset", "pmbcs", P_STRING|P_VI_DEF,
2125#if defined(FEAT_POSTSCRIPT)
2126 (char_u *)&p_pmcs, PV_NONE,
2127 {(char_u *)"", (char_u *)0L}
2128#else
2129 (char_u *)NULL, PV_NONE,
2130 {(char_u *)NULL, (char_u *)0L}
2131#endif
2132 SCTX_INIT},
2133 {"printmbfont", "pmbfn", P_STRING|P_VI_DEF,
2134#if defined(FEAT_POSTSCRIPT)
2135 (char_u *)&p_pmfn, PV_NONE,
2136 {(char_u *)"", (char_u *)0L}
2137#else
2138 (char_u *)NULL, PV_NONE,
2139 {(char_u *)NULL, (char_u *)0L}
2140#endif
2141 SCTX_INIT},
2142 {"printoptions", "popt", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2143#ifdef FEAT_PRINTER
2144 (char_u *)&p_popt, PV_NONE,
2145 {(char_u *)"", (char_u *)0L}
2146#else
2147 (char_u *)NULL, PV_NONE,
2148 {(char_u *)NULL, (char_u *)0L}
2149#endif
2150 SCTX_INIT},
2151 {"prompt", NULL, P_BOOL|P_VI_DEF,
2152 (char_u *)&p_prompt, PV_NONE,
2153 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2154 {"pumheight", "ph", P_NUM|P_VI_DEF,
2155 (char_u *)&p_ph, PV_NONE,
2156 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2157 {"pumwidth", "pw", P_NUM|P_VI_DEF,
2158 (char_u *)&p_pw, PV_NONE,
2159 {(char_u *)15L, (char_u *)15L} SCTX_INIT},
2160 {"pythonthreedll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2161#if defined(DYNAMIC_PYTHON3)
2162 (char_u *)&p_py3dll, PV_NONE,
2163 {(char_u *)DYNAMIC_PYTHON3_DLL, (char_u *)0L}
2164#else
2165 (char_u *)NULL, PV_NONE,
2166 {(char_u *)NULL, (char_u *)0L}
2167#endif
2168 SCTX_INIT},
2169 {"pythonthreehome", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2170#if defined(FEAT_PYTHON3)
2171 (char_u *)&p_py3home, PV_NONE,
2172 {(char_u *)"", (char_u *)0L}
2173#else
2174 (char_u *)NULL, PV_NONE,
2175 {(char_u *)NULL, (char_u *)0L}
2176#endif
2177 SCTX_INIT},
2178 {"pythondll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2179#if defined(DYNAMIC_PYTHON)
2180 (char_u *)&p_pydll, PV_NONE,
2181 {(char_u *)DYNAMIC_PYTHON_DLL, (char_u *)0L}
2182#else
2183 (char_u *)NULL, PV_NONE,
2184 {(char_u *)NULL, (char_u *)0L}
2185#endif
2186 SCTX_INIT},
2187 {"pythonhome", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2188#if defined(FEAT_PYTHON)
2189 (char_u *)&p_pyhome, PV_NONE,
2190 {(char_u *)"", (char_u *)0L}
2191#else
2192 (char_u *)NULL, PV_NONE,
2193 {(char_u *)NULL, (char_u *)0L}
2194#endif
2195 SCTX_INIT},
2196 {"pyxversion", "pyx", P_NUM|P_VI_DEF|P_SECURE,
2197#if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3)
2198 (char_u *)&p_pyx, PV_NONE,
2199#else
2200 (char_u *)NULL, PV_NONE,
2201#endif
2202 {(char_u *)DEFAULT_PYTHON_VER, (char_u *)0L}
2203 SCTX_INIT},
2204 {"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF,
2205#ifdef FEAT_TEXTOBJ
2206 (char_u *)&p_qe, PV_QE,
2207 {(char_u *)"\\", (char_u *)0L}
2208#else
2209 (char_u *)NULL, PV_NONE,
2210 {(char_u *)NULL, (char_u *)0L}
2211#endif
2212 SCTX_INIT},
2213 {"readonly", "ro", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
2214 (char_u *)&p_ro, PV_RO,
2215 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2216 {"redraw", NULL, P_BOOL|P_VI_DEF,
2217 (char_u *)NULL, PV_NONE,
2218 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2219 {"redrawtime", "rdt", P_NUM|P_VI_DEF,
2220#ifdef FEAT_RELTIME
2221 (char_u *)&p_rdt, PV_NONE,
2222#else
2223 (char_u *)NULL, PV_NONE,
2224#endif
2225 {(char_u *)2000L, (char_u *)0L} SCTX_INIT},
2226 {"regexpengine", "re", P_NUM|P_VI_DEF,
2227 (char_u *)&p_re, PV_NONE,
2228 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2229 {"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
2230 (char_u *)VAR_WIN, PV_RNU,
2231 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2232 {"remap", NULL, P_BOOL|P_VI_DEF,
2233 (char_u *)&p_remap, PV_NONE,
2234 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2235 {"renderoptions", "rop", P_STRING|P_ONECOMMA|P_RCLR|P_VI_DEF,
2236#ifdef FEAT_RENDER_OPTIONS
2237 (char_u *)&p_rop, PV_NONE,
2238 {(char_u *)"", (char_u *)0L}
2239#else
2240 (char_u *)NULL, PV_NONE,
2241 {(char_u *)NULL, (char_u *)0L}
2242#endif
2243 SCTX_INIT},
2244 {"report", NULL, P_NUM|P_VI_DEF,
2245 (char_u *)&p_report, PV_NONE,
2246 {(char_u *)2L, (char_u *)0L} SCTX_INIT},
2247 {"restorescreen", "rs", P_BOOL|P_VI_DEF,
2248#ifdef MSWIN
2249 (char_u *)&p_rs, PV_NONE,
2250#else
2251 (char_u *)NULL, PV_NONE,
2252#endif
2253 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2254 {"revins", "ri", P_BOOL|P_VI_DEF|P_VIM,
2255#ifdef FEAT_RIGHTLEFT
2256 (char_u *)&p_ri, PV_NONE,
2257#else
2258 (char_u *)NULL, PV_NONE,
2259#endif
2260 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2261 {"rightleft", "rl", P_BOOL|P_VI_DEF|P_RWIN,
2262#ifdef FEAT_RIGHTLEFT
2263 (char_u *)VAR_WIN, PV_RL,
2264#else
2265 (char_u *)NULL, PV_NONE,
2266#endif
2267 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2268 {"rightleftcmd", "rlc", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN,
2269#ifdef FEAT_RIGHTLEFT
2270 (char_u *)VAR_WIN, PV_RLC,
2271 {(char_u *)"search", (char_u *)NULL}
2272#else
2273 (char_u *)NULL, PV_NONE,
2274 {(char_u *)NULL, (char_u *)0L}
2275#endif
2276 SCTX_INIT},
2277 {"rubydll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2278#if defined(DYNAMIC_RUBY)
2279 (char_u *)&p_rubydll, PV_NONE,
2280 {(char_u *)DYNAMIC_RUBY_DLL, (char_u *)0L}
2281#else
2282 (char_u *)NULL, PV_NONE,
2283 {(char_u *)NULL, (char_u *)0L}
2284#endif
2285 SCTX_INIT},
2286 {"ruler", "ru", P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
2287#ifdef FEAT_CMDL_INFO
2288 (char_u *)&p_ru, PV_NONE,
2289#else
2290 (char_u *)NULL, PV_NONE,
2291#endif
2292 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2293 {"rulerformat", "ruf", P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT|P_MLE,
2294#ifdef FEAT_STL_OPT
2295 (char_u *)&p_ruf, PV_NONE,
2296#else
2297 (char_u *)NULL, PV_NONE,
2298#endif
2299 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2300 {"runtimepath", "rtp", P_STRING|P_VI_DEF|P_EXPAND|P_ONECOMMA|P_NODUP
2301 |P_SECURE,
2302 (char_u *)&p_rtp, PV_NONE,
2303 {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L}
2304 SCTX_INIT},
2305 {"scroll", "scr", P_NUM|P_NO_MKRC|P_VI_DEF,
2306 (char_u *)VAR_WIN, PV_SCROLL,
2307 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2308 {"scrollbind", "scb", P_BOOL|P_VI_DEF,
2309 (char_u *)VAR_WIN, PV_SCBIND,
2310 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2311 {"scrolljump", "sj", P_NUM|P_VI_DEF|P_VIM,
2312 (char_u *)&p_sj, PV_NONE,
2313 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
2314 {"scrolloff", "so", P_NUM|P_VI_DEF|P_VIM|P_RALL,
2315 (char_u *)&p_so, PV_SO,
2316 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2317 {"scrollopt", "sbo", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2318 (char_u *)&p_sbo, PV_NONE,
2319 {(char_u *)"ver,jump", (char_u *)0L}
2320 SCTX_INIT},
2321 {"sections", "sect", P_STRING|P_VI_DEF,
2322 (char_u *)&p_sections, PV_NONE,
2323 {(char_u *)"SHNHH HUnhsh", (char_u *)0L}
2324 SCTX_INIT},
2325 {"secure", NULL, P_BOOL|P_VI_DEF|P_SECURE,
2326 (char_u *)&p_secure, PV_NONE,
2327 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2328 {"selection", "sel", P_STRING|P_VI_DEF,
2329 (char_u *)&p_sel, PV_NONE,
2330 {(char_u *)"inclusive", (char_u *)0L}
2331 SCTX_INIT},
2332 {"selectmode", "slm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2333 (char_u *)&p_slm, PV_NONE,
2334 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2335 {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2336#ifdef FEAT_SESSION
2337 (char_u *)&p_ssop, PV_NONE,
2338 {(char_u *)"blank,buffers,curdir,folds,help,options,tabpages,winsize,terminal",
2339 (char_u *)0L}
2340#else
2341 (char_u *)NULL, PV_NONE,
2342 {(char_u *)0L, (char_u *)0L}
2343#endif
2344 SCTX_INIT},
2345 {"shell", "sh", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2346 (char_u *)&p_sh, PV_NONE,
2347 {
2348#ifdef VMS
2349 (char_u *)"-",
2350#else
2351# if defined(MSWIN)
2352 (char_u *)"", // set in set_init_1()
2353# else
2354 (char_u *)"sh",
2355# endif
2356#endif // VMS
2357 (char_u *)0L} SCTX_INIT},
2358 {"shellcmdflag","shcf", P_STRING|P_VI_DEF|P_SECURE,
2359 (char_u *)&p_shcf, PV_NONE,
2360 {
2361#if defined(MSWIN)
2362 (char_u *)"/c",
2363#else
2364 (char_u *)"-c",
2365#endif
2366 (char_u *)0L} SCTX_INIT},
2367 {"shellpipe", "sp", P_STRING|P_VI_DEF|P_SECURE,
2368#ifdef FEAT_QUICKFIX
2369 (char_u *)&p_sp, PV_NONE,
2370 {
2371#if defined(UNIX)
2372 (char_u *)"| tee",
2373#else
2374 (char_u *)">",
2375#endif
2376 (char_u *)0L}
2377#else
2378 (char_u *)NULL, PV_NONE,
2379 {(char_u *)0L, (char_u *)0L}
2380#endif
2381 SCTX_INIT},
2382 {"shellquote", "shq", P_STRING|P_VI_DEF|P_SECURE,
2383 (char_u *)&p_shq, PV_NONE,
2384 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2385 {"shellredir", "srr", P_STRING|P_VI_DEF|P_SECURE,
2386 (char_u *)&p_srr, PV_NONE,
2387 {(char_u *)">", (char_u *)0L} SCTX_INIT},
2388 {"shellslash", "ssl", P_BOOL|P_VI_DEF,
2389#ifdef BACKSLASH_IN_FILENAME
2390 (char_u *)&p_ssl, PV_NONE,
2391#else
2392 (char_u *)NULL, PV_NONE,
2393#endif
2394 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2395 {"shelltemp", "stmp", P_BOOL,
2396 (char_u *)&p_stmp, PV_NONE,
2397 {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
2398 {"shelltype", "st", P_NUM|P_VI_DEF,
2399#ifdef AMIGA
2400 (char_u *)&p_st, PV_NONE,
2401#else
2402 (char_u *)NULL, PV_NONE,
2403#endif
2404 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2405 {"shellxquote", "sxq", P_STRING|P_VI_DEF|P_SECURE,
2406 (char_u *)&p_sxq, PV_NONE,
2407 {
2408#if defined(UNIX) && defined(USE_SYSTEM)
2409 (char_u *)"\"",
2410#else
2411 (char_u *)"",
2412#endif
2413 (char_u *)0L} SCTX_INIT},
2414 {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
2415 (char_u *)&p_sxe, PV_NONE,
2416 {
2417#if defined(MSWIN)
2418 (char_u *)"\"&|<>()@^",
2419#else
2420 (char_u *)"",
2421#endif
2422 (char_u *)0L} SCTX_INIT},
2423 {"shiftround", "sr", P_BOOL|P_VI_DEF|P_VIM,
2424 (char_u *)&p_sr, PV_NONE,
2425 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2426 {"shiftwidth", "sw", P_NUM|P_VI_DEF,
2427 (char_u *)&p_sw, PV_SW,
2428 {(char_u *)8L, (char_u *)0L} SCTX_INIT},
2429 {"shortmess", "shm", P_STRING|P_VIM|P_FLAGLIST,
2430 (char_u *)&p_shm, PV_NONE,
2431 {(char_u *)"S", (char_u *)"filnxtToOS"}
2432 SCTX_INIT},
2433 {"shortname", "sn", P_BOOL|P_VI_DEF,
2434 (char_u *)&p_sn, PV_SN,
2435 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2436 {"showbreak", "sbr", P_STRING|P_VI_DEF|P_RALL,
2437#ifdef FEAT_LINEBREAK
2438 (char_u *)&p_sbr, PV_NONE,
2439#else
2440 (char_u *)NULL, PV_NONE,
2441#endif
2442 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2443 {"showcmd", "sc", P_BOOL|P_VIM,
2444#ifdef FEAT_CMDL_INFO
2445 (char_u *)&p_sc, PV_NONE,
2446#else
2447 (char_u *)NULL, PV_NONE,
2448#endif
2449 {(char_u *)FALSE,
2450#ifdef UNIX
2451 (char_u *)FALSE
2452#else
2453 (char_u *)TRUE
2454#endif
2455 } SCTX_INIT},
2456 {"showfulltag", "sft", P_BOOL|P_VI_DEF,
2457 (char_u *)&p_sft, PV_NONE,
2458 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2459 {"showmatch", "sm", P_BOOL|P_VI_DEF,
2460 (char_u *)&p_sm, PV_NONE,
2461 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2462 {"showmode", "smd", P_BOOL|P_VIM,
2463 (char_u *)&p_smd, PV_NONE,
2464 {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
2465 {"showtabline", "stal", P_NUM|P_VI_DEF|P_RALL,
2466 (char_u *)&p_stal, PV_NONE,
2467 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
2468 {"sidescroll", "ss", P_NUM|P_VI_DEF,
2469 (char_u *)&p_ss, PV_NONE,
2470 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2471 {"sidescrolloff", "siso", P_NUM|P_VI_DEF|P_VIM|P_RBUF,
2472 (char_u *)&p_siso, PV_SISO,
2473 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2474 {"signcolumn", "scl", P_STRING|P_ALLOCED|P_VI_DEF|P_RCLR,
2475#ifdef FEAT_SIGNS
2476 (char_u *)VAR_WIN, PV_SCL,
2477 {(char_u *)"auto", (char_u *)0L}
2478#else
2479 (char_u *)NULL, PV_NONE,
2480 {(char_u *)NULL, (char_u *)0L}
2481#endif
2482 SCTX_INIT},
2483 {"slowopen", "slow", P_BOOL|P_VI_DEF,
2484 (char_u *)NULL, PV_NONE,
2485 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2486 {"smartcase", "scs", P_BOOL|P_VI_DEF|P_VIM,
2487 (char_u *)&p_scs, PV_NONE,
2488 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2489 {"smartindent", "si", P_BOOL|P_VI_DEF|P_VIM,
2490#ifdef FEAT_SMARTINDENT
2491 (char_u *)&p_si, PV_SI,
2492#else
2493 (char_u *)NULL, PV_NONE,
2494#endif
2495 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2496 {"smarttab", "sta", P_BOOL|P_VI_DEF|P_VIM,
2497 (char_u *)&p_sta, PV_NONE,
2498 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2499 {"softtabstop", "sts", P_NUM|P_VI_DEF|P_VIM,
2500 (char_u *)&p_sts, PV_STS,
2501 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2502 {"sourceany", NULL, P_BOOL|P_VI_DEF,
2503 (char_u *)NULL, PV_NONE,
2504 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2505 {"spell", NULL, P_BOOL|P_VI_DEF|P_RWIN,
2506#ifdef FEAT_SPELL
2507 (char_u *)VAR_WIN, PV_SPELL,
2508#else
2509 (char_u *)NULL, PV_NONE,
2510#endif
2511 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2512 {"spellcapcheck", "spc", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF,
2513#ifdef FEAT_SPELL
2514 (char_u *)&p_spc, PV_SPC,
2515 {(char_u *)"[.?!]\\_[\\])'\" ]\\+", (char_u *)0L}
2516#else
2517 (char_u *)NULL, PV_NONE,
2518 {(char_u *)0L, (char_u *)0L}
2519#endif
2520 SCTX_INIT},
2521 {"spellfile", "spf", P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE
2522 |P_ONECOMMA,
2523#ifdef FEAT_SPELL
2524 (char_u *)&p_spf, PV_SPF,
2525 {(char_u *)"", (char_u *)0L}
2526#else
2527 (char_u *)NULL, PV_NONE,
2528 {(char_u *)0L, (char_u *)0L}
2529#endif
2530 SCTX_INIT},
2531 {"spelllang", "spl", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
2532 |P_RBUF|P_EXPAND,
2533#ifdef FEAT_SPELL
2534 (char_u *)&p_spl, PV_SPL,
2535 {(char_u *)"en", (char_u *)0L}
2536#else
2537 (char_u *)NULL, PV_NONE,
2538 {(char_u *)0L, (char_u *)0L}
2539#endif
2540 SCTX_INIT},
2541 {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_ONECOMMA,
2542#ifdef FEAT_SPELL
2543 (char_u *)&p_sps, PV_NONE,
2544 {(char_u *)"best", (char_u *)0L}
2545#else
2546 (char_u *)NULL, PV_NONE,
2547 {(char_u *)0L, (char_u *)0L}
2548#endif
2549 SCTX_INIT},
2550 {"splitbelow", "sb", P_BOOL|P_VI_DEF,
2551 (char_u *)&p_sb, PV_NONE,
2552 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2553 {"splitright", "spr", P_BOOL|P_VI_DEF,
2554 (char_u *)&p_spr, PV_NONE,
2555 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2556 {"startofline", "sol", P_BOOL|P_VI_DEF|P_VIM,
2557 (char_u *)&p_sol, PV_NONE,
2558 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2559 {"statusline" ,"stl", P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT|P_MLE,
2560#ifdef FEAT_STL_OPT
2561 (char_u *)&p_stl, PV_STL,
2562#else
2563 (char_u *)NULL, PV_NONE,
2564#endif
2565 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2566 {"suffixes", "su", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2567 (char_u *)&p_su, PV_NONE,
2568 {(char_u *)".bak,~,.o,.h,.info,.swp,.obj",
2569 (char_u *)0L} SCTX_INIT},
2570 {"suffixesadd", "sua", P_STRING|P_VI_DEF|P_ALLOCED|P_ONECOMMA|P_NODUP,
2571#ifdef FEAT_SEARCHPATH
2572 (char_u *)&p_sua, PV_SUA,
2573 {(char_u *)"", (char_u *)0L}
2574#else
2575 (char_u *)NULL, PV_NONE,
2576 {(char_u *)0L, (char_u *)0L}
2577#endif
2578 SCTX_INIT},
2579 {"swapfile", "swf", P_BOOL|P_VI_DEF|P_RSTAT,
2580 (char_u *)&p_swf, PV_SWF,
2581 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2582 {"swapsync", "sws", P_STRING|P_VI_DEF,
2583 (char_u *)&p_sws, PV_NONE,
2584 {(char_u *)"fsync", (char_u *)0L} SCTX_INIT},
2585 {"switchbuf", "swb", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2586 (char_u *)&p_swb, PV_NONE,
2587 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2588 {"synmaxcol", "smc", P_NUM|P_VI_DEF|P_RBUF,
2589#ifdef FEAT_SYN_HL
2590 (char_u *)&p_smc, PV_SMC,
2591 {(char_u *)3000L, (char_u *)0L}
2592#else
2593 (char_u *)NULL, PV_NONE,
2594 {(char_u *)0L, (char_u *)0L}
2595#endif
2596 SCTX_INIT},
2597 {"syntax", "syn", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
2598#ifdef FEAT_SYN_HL
2599 (char_u *)&p_syn, PV_SYN,
2600 {(char_u *)"", (char_u *)0L}
2601#else
2602 (char_u *)NULL, PV_NONE,
2603 {(char_u *)0L, (char_u *)0L}
2604#endif
2605 SCTX_INIT},
2606 {"tabline", "tal", P_STRING|P_VI_DEF|P_RALL|P_MLE,
2607#ifdef FEAT_STL_OPT
2608 (char_u *)&p_tal, PV_NONE,
2609#else
2610 (char_u *)NULL, PV_NONE,
2611#endif
2612 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2613 {"tabpagemax", "tpm", P_NUM|P_VI_DEF,
2614 (char_u *)&p_tpm, PV_NONE,
2615 {(char_u *)10L, (char_u *)0L} SCTX_INIT},
2616 {"tabstop", "ts", P_NUM|P_VI_DEF|P_RBUF,
2617 (char_u *)&p_ts, PV_TS,
2618 {(char_u *)8L, (char_u *)0L} SCTX_INIT},
2619 {"tagbsearch", "tbs", P_BOOL|P_VI_DEF,
2620 (char_u *)&p_tbs, PV_NONE,
2621#ifdef VMS // binary searching doesn't appear to work on VMS
2622 {(char_u *)0L, (char_u *)0L}
2623#else
2624 {(char_u *)TRUE, (char_u *)0L}
2625#endif
2626 SCTX_INIT},
2627 {"tagcase", "tc", P_STRING|P_VIM,
2628 (char_u *)&p_tc, PV_TC,
2629 {(char_u *)"followic", (char_u *)"followic"} SCTX_INIT},
2630 {"tagfunc", "tfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
2631#ifdef FEAT_EVAL
2632 (char_u *)&p_tfu, PV_TFU,
2633 {(char_u *)"", (char_u *)0L}
2634#else
2635 (char_u *)NULL, PV_NONE,
2636 {(char_u *)0L, (char_u *)0L}
2637#endif
2638 SCTX_INIT},
2639 {"taglength", "tl", P_NUM|P_VI_DEF,
2640 (char_u *)&p_tl, PV_NONE,
2641 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2642 {"tagrelative", "tr", P_BOOL|P_VIM,
2643 (char_u *)&p_tr, PV_NONE,
2644 {(char_u *)FALSE, (char_u *)TRUE} SCTX_INIT},
2645 {"tags", "tag", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP,
2646 (char_u *)&p_tags, PV_TAGS,
2647 {
2648#if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME)
2649 (char_u *)"./tags,./TAGS,tags,TAGS",
2650#else
2651 (char_u *)"./tags,tags",
2652#endif
2653 (char_u *)0L} SCTX_INIT},
2654 {"tagstack", "tgst", P_BOOL|P_VI_DEF,
2655 (char_u *)&p_tgst, PV_NONE,
2656 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2657 {"tcldll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2658#if defined(DYNAMIC_TCL)
2659 (char_u *)&p_tcldll, PV_NONE,
2660 {(char_u *)DYNAMIC_TCL_DLL, (char_u *)0L}
2661#else
2662 (char_u *)NULL, PV_NONE,
2663 {(char_u *)0L, (char_u *)0L}
2664#endif
2665 SCTX_INIT},
2666 {"term", NULL, P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL,
2667 (char_u *)&T_NAME, PV_NONE,
2668 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2669 {"termbidi", "tbidi", P_BOOL|P_VI_DEF,
2670#ifdef FEAT_ARABIC
2671 (char_u *)&p_tbidi, PV_NONE,
2672#else
2673 (char_u *)NULL, PV_NONE,
2674#endif
2675 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2676 {"termencoding", "tenc", P_STRING|P_VI_DEF|P_RCLR,
2677 (char_u *)&p_tenc, PV_NONE,
2678 {(char_u *)"", (char_u *)0L}
2679 SCTX_INIT},
2680 {"termguicolors", "tgc", P_BOOL|P_VI_DEF|P_VIM|P_RCLR,
2681#ifdef FEAT_TERMGUICOLORS
2682 (char_u *)&p_tgc, PV_NONE,
2683 {(char_u *)FALSE, (char_u *)FALSE}
2684#else
2685 (char_u*)NULL, PV_NONE,
2686 {(char_u *)FALSE, (char_u *)FALSE}
2687#endif
2688 SCTX_INIT},
2689 {"termwinkey", "twk", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
2690#ifdef FEAT_TERMINAL
2691 (char_u *)VAR_WIN, PV_TWK,
2692 {(char_u *)"", (char_u *)NULL}
2693#else
2694 (char_u *)NULL, PV_NONE,
2695 {(char_u *)NULL, (char_u *)0L}
2696#endif
2697 SCTX_INIT},
2698 {"termwinscroll", "twsl", P_NUM|P_VI_DEF|P_VIM|P_RBUF,
2699#ifdef FEAT_TERMINAL
2700 (char_u *)&p_twsl, PV_TWSL,
2701 {(char_u *)10000L, (char_u *)10000L}
2702#else
2703 (char_u *)NULL, PV_NONE,
2704 {(char_u *)NULL, (char_u *)0L}
2705#endif
2706 SCTX_INIT},
2707 {"termwinsize", "tws", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF,
2708#ifdef FEAT_TERMINAL
2709 (char_u *)VAR_WIN, PV_TWS,
2710 {(char_u *)"", (char_u *)NULL}
2711#else
2712 (char_u *)NULL, PV_NONE,
2713 {(char_u *)NULL, (char_u *)0L}
2714#endif
2715 SCTX_INIT},
2716 {"termwintype", "twt", P_STRING|P_ALLOCED|P_VI_DEF,
2717#if defined(MSWIN) && defined(FEAT_TERMINAL)
2718 (char_u *)&p_twt, PV_NONE,
2719 {(char_u *)"", (char_u *)NULL}
2720#else
2721 (char_u *)NULL, PV_NONE,
2722 {(char_u *)NULL, (char_u *)0L}
2723#endif
2724 SCTX_INIT},
2725 {"terse", NULL, P_BOOL|P_VI_DEF,
2726 (char_u *)&p_terse, PV_NONE,
2727 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2728 {"textauto", "ta", P_BOOL|P_VIM,
2729 (char_u *)&p_ta, PV_NONE,
2730 {(char_u *)DFLT_TEXTAUTO, (char_u *)TRUE}
2731 SCTX_INIT},
2732 {"textmode", "tx", P_BOOL|P_VI_DEF|P_NO_MKRC,
2733 (char_u *)&p_tx, PV_TX,
2734 {
2735#ifdef USE_CRNL
2736 (char_u *)TRUE,
2737#else
2738 (char_u *)FALSE,
2739#endif
2740 (char_u *)0L} SCTX_INIT},
2741 {"textwidth", "tw", P_NUM|P_VI_DEF|P_VIM|P_RBUF,
2742 (char_u *)&p_tw, PV_TW,
2743 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2744 {"thesaurus", "tsr", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP|P_NDNAME,
2745 (char_u *)&p_tsr, PV_TSR,
2746 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2747 {"tildeop", "top", P_BOOL|P_VI_DEF|P_VIM,
2748 (char_u *)&p_to, PV_NONE,
2749 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2750 {"timeout", "to", P_BOOL|P_VI_DEF,
2751 (char_u *)&p_timeout, PV_NONE,
2752 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2753 {"timeoutlen", "tm", P_NUM|P_VI_DEF,
2754 (char_u *)&p_tm, PV_NONE,
2755 {(char_u *)1000L, (char_u *)0L} SCTX_INIT},
2756 {"title", NULL, P_BOOL|P_VI_DEF,
2757#ifdef FEAT_TITLE
2758 (char_u *)&p_title, PV_NONE,
2759#else
2760 (char_u *)NULL, PV_NONE,
2761#endif
2762 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2763 {"titlelen", NULL, P_NUM|P_VI_DEF,
2764#ifdef FEAT_TITLE
2765 (char_u *)&p_titlelen, PV_NONE,
2766#else
2767 (char_u *)NULL, PV_NONE,
2768#endif
2769 {(char_u *)85L, (char_u *)0L} SCTX_INIT},
2770 {"titleold", NULL, P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC,
2771#ifdef FEAT_TITLE
2772 (char_u *)&p_titleold, PV_NONE,
2773 {(char_u *)N_("Thanks for flying Vim"),
2774 (char_u *)0L}
2775#else
2776 (char_u *)NULL, PV_NONE,
2777 {(char_u *)0L, (char_u *)0L}
2778#endif
2779 SCTX_INIT},
2780 {"titlestring", NULL, P_STRING|P_VI_DEF|P_MLE,
2781#ifdef FEAT_TITLE
2782 (char_u *)&p_titlestring, PV_NONE,
2783#else
2784 (char_u *)NULL, PV_NONE,
2785#endif
2786 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2787 {"toolbar", "tb", P_STRING|P_ONECOMMA|P_VI_DEF|P_NODUP,
2788#if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_MSWIN)
2789 (char_u *)&p_toolbar, PV_NONE,
2790 {(char_u *)"icons,tooltips", (char_u *)0L}
2791#else
2792 (char_u *)NULL, PV_NONE,
2793 {(char_u *)0L, (char_u *)0L}
2794#endif
2795 SCTX_INIT},
2796 {"toolbariconsize", "tbis", P_STRING|P_VI_DEF,
2797#if defined(FEAT_TOOLBAR) && defined(FEAT_GUI_GTK)
2798 (char_u *)&p_tbis, PV_NONE,
2799 {(char_u *)"small", (char_u *)0L}
2800#else
2801 (char_u *)NULL, PV_NONE,
2802 {(char_u *)0L, (char_u *)0L}
2803#endif
2804 SCTX_INIT},
2805 {"ttimeout", NULL, P_BOOL|P_VI_DEF|P_VIM,
2806 (char_u *)&p_ttimeout, PV_NONE,
2807 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2808 {"ttimeoutlen", "ttm", P_NUM|P_VI_DEF,
2809 (char_u *)&p_ttm, PV_NONE,
2810 {(char_u *)-1L, (char_u *)0L} SCTX_INIT},
2811 {"ttybuiltin", "tbi", P_BOOL|P_VI_DEF,
2812 (char_u *)&p_tbi, PV_NONE,
2813 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2814 {"ttyfast", "tf", P_BOOL|P_NO_MKRC|P_VI_DEF,
2815 (char_u *)&p_tf, PV_NONE,
2816 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2817 {"ttymouse", "ttym", P_STRING|P_NODEFAULT|P_NO_MKRC|P_VI_DEF,
2818#if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
2819 (char_u *)&p_ttym, PV_NONE,
2820#else
2821 (char_u *)NULL, PV_NONE,
2822#endif
2823 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2824 {"ttyscroll", "tsl", P_NUM|P_VI_DEF,
2825 (char_u *)&p_ttyscroll, PV_NONE,
2826 {(char_u *)999L, (char_u *)0L} SCTX_INIT},
2827 {"ttytype", "tty", P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL,
2828 (char_u *)&T_NAME, PV_NONE,
2829 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2830 {"undodir", "udir", P_STRING|P_EXPAND|P_ONECOMMA|P_NODUP|P_SECURE
2831 |P_VI_DEF,
2832#ifdef FEAT_PERSISTENT_UNDO
2833 (char_u *)&p_udir, PV_NONE,
2834 {(char_u *)".", (char_u *)0L}
2835#else
2836 (char_u *)NULL, PV_NONE,
2837 {(char_u *)0L, (char_u *)0L}
2838#endif
2839 SCTX_INIT},
2840 {"undofile", "udf", P_BOOL|P_VI_DEF|P_VIM,
2841#ifdef FEAT_PERSISTENT_UNDO
2842 (char_u *)&p_udf, PV_UDF,
2843#else
2844 (char_u *)NULL, PV_NONE,
2845#endif
2846 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2847 {"undolevels", "ul", P_NUM|P_VI_DEF,
2848 (char_u *)&p_ul, PV_UL,
2849 {
2850#if defined(UNIX) || defined(MSWIN) || defined(VMS)
2851 (char_u *)1000L,
2852#else
2853 (char_u *)100L,
2854#endif
2855 (char_u *)0L} SCTX_INIT},
2856 {"undoreload", "ur", P_NUM|P_VI_DEF,
2857 (char_u *)&p_ur, PV_NONE,
2858 { (char_u *)10000L, (char_u *)0L} SCTX_INIT},
2859 {"updatecount", "uc", P_NUM|P_VI_DEF,
2860 (char_u *)&p_uc, PV_NONE,
2861 {(char_u *)200L, (char_u *)0L} SCTX_INIT},
2862 {"updatetime", "ut", P_NUM|P_VI_DEF,
2863 (char_u *)&p_ut, PV_NONE,
2864 {(char_u *)4000L, (char_u *)0L} SCTX_INIT},
2865 {"varsofttabstop", "vsts", P_STRING|P_VI_DEF|P_VIM|P_COMMA,
2866#ifdef FEAT_VARTABS
2867 (char_u *)&p_vsts, PV_VSTS,
2868 {(char_u *)"", (char_u *)0L}
2869#else
2870 (char_u *)NULL, PV_NONE,
2871 {(char_u *)"", (char_u *)NULL}
2872#endif
2873 SCTX_INIT},
2874 {"vartabstop", "vts", P_STRING|P_VI_DEF|P_VIM|P_RBUF|P_COMMA,
2875#ifdef FEAT_VARTABS
2876 (char_u *)&p_vts, PV_VTS,
2877 {(char_u *)"", (char_u *)0L}
2878#else
2879 (char_u *)NULL, PV_NONE,
2880 {(char_u *)"", (char_u *)NULL}
2881#endif
2882 SCTX_INIT},
2883 {"verbose", "vbs", P_NUM|P_VI_DEF,
2884 (char_u *)&p_verbose, PV_NONE,
2885 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2886 {"verbosefile", "vfile", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2887 (char_u *)&p_vfile, PV_NONE,
2888 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2889 {"viewdir", "vdir", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
2890#ifdef FEAT_SESSION
2891 (char_u *)&p_vdir, PV_NONE,
2892 {(char_u *)DFLT_VDIR, (char_u *)0L}
2893#else
2894 (char_u *)NULL, PV_NONE,
2895 {(char_u *)0L, (char_u *)0L}
2896#endif
2897 SCTX_INIT},
2898 {"viewoptions", "vop", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2899#ifdef FEAT_SESSION
2900 (char_u *)&p_vop, PV_NONE,
2901 {(char_u *)"folds,options,cursor,curdir",
2902 (char_u *)0L}
2903#else
2904 (char_u *)NULL, PV_NONE,
2905 {(char_u *)0L, (char_u *)0L}
2906#endif
2907 SCTX_INIT},
2908 {"viminfo", "vi", P_STRING|P_ONECOMMA|P_NODUP|P_SECURE,
2909#ifdef FEAT_VIMINFO
2910 (char_u *)&p_viminfo, PV_NONE,
2911#if defined(MSWIN)
2912 {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
2913#else
2914# ifdef AMIGA
2915 {(char_u *)"",
2916 (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"}
2917# else
2918 {(char_u *)"", (char_u *)"'100,<50,s10,h"}
2919# endif
2920#endif
2921#else
2922 (char_u *)NULL, PV_NONE,
2923 {(char_u *)0L, (char_u *)0L}
2924#endif
2925 SCTX_INIT},
2926 {"viminfofile", "vif", P_STRING|P_EXPAND|P_ONECOMMA|P_NODUP
2927 |P_SECURE|P_VI_DEF,
2928#ifdef FEAT_VIMINFO
2929 (char_u *)&p_viminfofile, PV_NONE,
2930 {(char_u *)"", (char_u *)0L}
2931#else
2932 (char_u *)NULL, PV_NONE,
2933 {(char_u *)0L, (char_u *)0L}
2934#endif
2935 SCTX_INIT},
2936 {"virtualedit", "ve", P_STRING|P_ONECOMMA|P_NODUP|P_VI_DEF
2937 |P_VIM|P_CURSWANT,
2938 (char_u *)&p_ve, PV_NONE,
2939 {(char_u *)"", (char_u *)""}
2940 SCTX_INIT},
2941 {"visualbell", "vb", P_BOOL|P_VI_DEF,
2942 (char_u *)&p_vb, PV_NONE,
2943 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2944 {"w300", NULL, P_NUM|P_VI_DEF,
2945 (char_u *)NULL, PV_NONE,
2946 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2947 {"w1200", NULL, P_NUM|P_VI_DEF,
2948 (char_u *)NULL, PV_NONE,
2949 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2950 {"w9600", NULL, P_NUM|P_VI_DEF,
2951 (char_u *)NULL, PV_NONE,
2952 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2953 {"warn", NULL, P_BOOL|P_VI_DEF,
2954 (char_u *)&p_warn, PV_NONE,
2955 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
2956 {"weirdinvert", "wiv", P_BOOL|P_VI_DEF|P_RCLR,
2957 (char_u *)&p_wiv, PV_NONE,
2958 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2959 {"whichwrap", "ww", P_STRING|P_VIM|P_ONECOMMA|P_FLAGLIST,
2960 (char_u *)&p_ww, PV_NONE,
2961 {(char_u *)"", (char_u *)"b,s"} SCTX_INIT},
2962 {"wildchar", "wc", P_NUM|P_VIM,
2963 (char_u *)&p_wc, PV_NONE,
2964 {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
2965 SCTX_INIT},
2966 {"wildcharm", "wcm", P_NUM|P_VI_DEF,
2967 (char_u *)&p_wcm, PV_NONE,
2968 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
2969 {"wildignore", "wig", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2970#ifdef FEAT_WILDIGN
2971 (char_u *)&p_wig, PV_NONE,
2972#else
2973 (char_u *)NULL, PV_NONE,
2974#endif
2975 {(char_u *)"", (char_u *)0L} SCTX_INIT},
2976 {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
2977 (char_u *)&p_wic, PV_NONE,
2978 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2979 {"wildmenu", "wmnu", P_BOOL|P_VI_DEF,
2980#ifdef FEAT_WILDMENU
2981 (char_u *)&p_wmnu, PV_NONE,
2982#else
2983 (char_u *)NULL, PV_NONE,
2984#endif
2985 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
2986 {"wildmode", "wim", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
2987 (char_u *)&p_wim, PV_NONE,
2988 {(char_u *)"full", (char_u *)0L} SCTX_INIT},
2989 {"wildoptions", "wop", P_STRING|P_VI_DEF,
2990 (char_u *)&p_wop, PV_NONE,
2991 {(char_u *)"", (char_u *)0L}
2992 SCTX_INIT},
2993 {"winaltkeys", "wak", P_STRING|P_VI_DEF,
2994#ifdef FEAT_WAK
2995 (char_u *)&p_wak, PV_NONE,
2996 {(char_u *)"menu", (char_u *)0L}
2997#else
2998 (char_u *)NULL, PV_NONE,
2999 {(char_u *)NULL, (char_u *)0L}
3000#endif
3001 SCTX_INIT},
3002 {"wincolor", "wcr", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN,
3003 (char_u *)VAR_WIN, PV_WCR,
3004 {(char_u *)"", (char_u *)NULL}
3005 SCTX_INIT},
3006 {"window", "wi", P_NUM|P_VI_DEF,
3007 (char_u *)&p_window, PV_NONE,
3008 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
3009 {"winheight", "wh", P_NUM|P_VI_DEF,
3010 (char_u *)&p_wh, PV_NONE,
3011 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
3012 {"winfixheight", "wfh", P_BOOL|P_VI_DEF|P_RSTAT,
3013 (char_u *)VAR_WIN, PV_WFH,
3014 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
3015 {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT,
3016 (char_u *)VAR_WIN, PV_WFW,
3017 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
3018 {"winminheight", "wmh", P_NUM|P_VI_DEF,
3019 (char_u *)&p_wmh, PV_NONE,
3020 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
3021 {"winminwidth", "wmw", P_NUM|P_VI_DEF,
3022 (char_u *)&p_wmw, PV_NONE,
3023 {(char_u *)1L, (char_u *)0L} SCTX_INIT},
3024 {"winptydll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
3025#if defined(MSWIN) && defined(FEAT_TERMINAL)
3026 (char_u *)&p_winptydll, PV_NONE, {
3027# ifdef _WIN64
3028 (char_u *)"winpty64.dll",
3029# else
3030 (char_u *)"winpty32.dll",
3031# endif
3032 (char_u *)0L}
3033#else
3034 (char_u *)NULL, PV_NONE,
3035 {(char_u *)0L, (char_u *)0L}
3036#endif
3037 SCTX_INIT},
3038 {"winwidth", "wiw", P_NUM|P_VI_DEF,
3039 (char_u *)&p_wiw, PV_NONE,
3040 {(char_u *)20L, (char_u *)0L} SCTX_INIT},
3041 {"wrap", NULL, P_BOOL|P_VI_DEF|P_RWIN,
3042 (char_u *)VAR_WIN, PV_WRAP,
3043 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
3044 {"wrapmargin", "wm", P_NUM|P_VI_DEF,
3045 (char_u *)&p_wm, PV_WM,
3046 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
3047 {"wrapscan", "ws", P_BOOL|P_VI_DEF,
3048 (char_u *)&p_ws, PV_NONE,
3049 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
3050 {"write", NULL, P_BOOL|P_VI_DEF,
3051 (char_u *)&p_write, PV_NONE,
3052 {(char_u *)TRUE, (char_u *)0L} SCTX_INIT},
3053 {"writeany", "wa", P_BOOL|P_VI_DEF,
3054 (char_u *)&p_wa, PV_NONE,
3055 {(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
3056 {"writebackup", "wb", P_BOOL|P_VI_DEF|P_VIM,
3057 (char_u *)&p_wb, PV_NONE,
3058 {
3059#ifdef FEAT_WRITEBACKUP
3060 (char_u *)TRUE,
3061#else
3062 (char_u *)FALSE,
3063#endif
3064 (char_u *)0L} SCTX_INIT},
3065 {"writedelay", "wd", P_NUM|P_VI_DEF,
3066 (char_u *)&p_wd, PV_NONE,
3067 {(char_u *)0L, (char_u *)0L} SCTX_INIT},
3068
3069// terminal output codes
3070#define p_term(sss, vvv) {sss, NULL, P_STRING|P_VI_DEF|P_RALL|P_SECURE, \
3071 (char_u *)&vvv, PV_NONE, \
3072 {(char_u *)"", (char_u *)0L} SCTX_INIT},
3073
3074 p_term("t_AB", T_CAB)
3075 p_term("t_AF", T_CAF)
3076 p_term("t_AL", T_CAL)
3077 p_term("t_al", T_AL)
3078 p_term("t_bc", T_BC)
3079 p_term("t_BE", T_BE)
3080 p_term("t_BD", T_BD)
3081 p_term("t_cd", T_CD)
3082 p_term("t_ce", T_CE)
3083 p_term("t_cl", T_CL)
3084 p_term("t_cm", T_CM)
3085 p_term("t_Ce", T_UCE)
3086 p_term("t_Co", T_CCO)
3087 p_term("t_CS", T_CCS)
3088 p_term("t_Cs", T_UCS)
3089 p_term("t_cs", T_CS)
3090 p_term("t_CV", T_CSV)
3091 p_term("t_da", T_DA)
3092 p_term("t_db", T_DB)
3093 p_term("t_DL", T_CDL)
3094 p_term("t_dl", T_DL)
3095 p_term("t_EC", T_CEC)
3096 p_term("t_EI", T_CEI)
3097 p_term("t_fs", T_FS)
3098 p_term("t_GP", T_CGP)
3099 p_term("t_IE", T_CIE)
3100 p_term("t_IS", T_CIS)
3101 p_term("t_ke", T_KE)
3102 p_term("t_ks", T_KS)
3103 p_term("t_le", T_LE)
3104 p_term("t_mb", T_MB)
3105 p_term("t_md", T_MD)
3106 p_term("t_me", T_ME)
3107 p_term("t_mr", T_MR)
3108 p_term("t_ms", T_MS)
3109 p_term("t_nd", T_ND)
3110 p_term("t_op", T_OP)
3111 p_term("t_RF", T_RFG)
3112 p_term("t_RB", T_RBG)
3113 p_term("t_RC", T_CRC)
3114 p_term("t_RI", T_CRI)
3115 p_term("t_Ri", T_SRI)
3116 p_term("t_RS", T_CRS)
3117 p_term("t_RT", T_CRT)
3118 p_term("t_RV", T_CRV)
3119 p_term("t_Sb", T_CSB)
3120 p_term("t_SC", T_CSC)
3121 p_term("t_se", T_SE)
3122 p_term("t_Sf", T_CSF)
3123 p_term("t_SH", T_CSH)
3124 p_term("t_SI", T_CSI)
3125 p_term("t_Si", T_SSI)
3126 p_term("t_so", T_SO)
3127 p_term("t_SR", T_CSR)
3128 p_term("t_sr", T_SR)
3129 p_term("t_ST", T_CST)
3130 p_term("t_Te", T_STE)
3131 p_term("t_te", T_TE)
3132 p_term("t_ti", T_TI)
3133 p_term("t_Ts", T_STS)
3134 p_term("t_ts", T_TS)
3135 p_term("t_u7", T_U7)
3136 p_term("t_ue", T_UE)
3137 p_term("t_us", T_US)
3138 p_term("t_ut", T_UT)
3139 p_term("t_vb", T_VB)
3140 p_term("t_ve", T_VE)
3141 p_term("t_vi", T_VI)
3142 p_term("t_VS", T_CVS)
3143 p_term("t_vs", T_VS)
3144 p_term("t_WP", T_CWP)
3145 p_term("t_WS", T_CWS)
3146 p_term("t_xn", T_XN)
3147 p_term("t_xs", T_XS)
3148 p_term("t_ZH", T_CZH)
3149 p_term("t_ZR", T_CZR)
3150 p_term("t_8f", T_8F)
3151 p_term("t_8b", T_8B)
3152
3153// terminal key codes are not in here
3154
3155 // end marker
3156 {NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCTX_INIT}
3157};
3158
3159#define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption))
3160
3161static char *(p_ambw_values[]) = {"single", "double", NULL};
3162static char *(p_bg_values[]) = {"light", "dark", NULL};
3163static char *(p_nf_values[]) = {"bin", "octal", "hex", "alpha", NULL};
3164static char *(p_ff_values[]) = {FF_UNIX, FF_DOS, FF_MAC, NULL};
3165#ifdef FEAT_CRYPT
3166static char *(p_cm_values[]) = {"zip", "blowfish", "blowfish2", NULL};
3167#endif
3168static char *(p_wop_values[]) = {"tagfile", NULL};
3169#ifdef FEAT_WAK
3170static char *(p_wak_values[]) = {"yes", "menu", "no", NULL};
3171#endif
3172static char *(p_mousem_values[]) = {"extend", "popup", "popup_setpos", "mac", NULL};
3173static char *(p_sel_values[]) = {"inclusive", "exclusive", "old", NULL};
3174static char *(p_slm_values[]) = {"mouse", "key", "cmd", NULL};
3175static char *(p_km_values[]) = {"startsel", "stopsel", NULL};
3176#ifdef FEAT_BROWSE
3177static char *(p_bsdir_values[]) = {"current", "last", "buffer", NULL};
3178#endif
3179static char *(p_scbopt_values[]) = {"ver", "hor", "jump", NULL};
3180static char *(p_debug_values[]) = {"msg", "throw", "beep", NULL};
3181static char *(p_ead_values[]) = {"both", "ver", "hor", NULL};
3182static char *(p_buftype_values[]) = {"nofile", "nowrite", "quickfix", "help", "terminal", "acwrite", "prompt", "popup", NULL};
3183static char *(p_bufhidden_values[]) = {"hide", "unload", "delete", "wipe", NULL};
3184static char *(p_bs_values[]) = {"indent", "eol", "start", NULL};
3185#ifdef FEAT_FOLDING
3186static char *(p_fdm_values[]) = {"manual", "expr", "marker", "indent", "syntax",
3187# ifdef FEAT_DIFF
3188 "diff",
3189# endif
3190 NULL};
3191static char *(p_fcl_values[]) = {"all", NULL};
3192#endif
3193static char *(p_cot_values[]) = {"menu", "menuone", "longest", "preview", "popup", "noinsert", "noselect", NULL};
3194#ifdef BACKSLASH_IN_FILENAME
3195static char *(p_csl_values[]) = {"slash", "backslash", NULL};
3196#endif
3197#ifdef FEAT_SIGNS
3198static char *(p_scl_values[]) = {"yes", "no", "auto", "number", NULL};
3199#endif
3200#if defined(MSWIN) && defined(FEAT_TERMINAL)
3201static char *(p_twt_values[]) = {"winpty", "conpty", "", NULL};
3202#endif