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