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