diff options
| author | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-12 02:25:17 +0200 |
|---|---|---|
| committer | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-15 20:46:01 +0200 |
| commit | da51dc9cf202772f60bd2da975dbef257bd9237c (patch) | |
| tree | 5c16b93238a153f55634e9323077f30c8133970c /src/nvim/option.c | |
| parent | ffe61e5ba1721340ca51d56bae3ddaca415fb5bc (diff) | |
| download | rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.gz rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.bz2 rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.zip | |
Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/.
- src/nvim/ becomes the new root dir for nvim executable sources.
- src/libnvim/ is planned to become root dir of the neovim library.
Diffstat (limited to 'src/nvim/option.c')
| -rw-r--r-- | src/nvim/option.c | 8311 |
1 files changed, 8311 insertions, 0 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c new file mode 100644 index 0000000000..89069d96ef --- /dev/null +++ b/src/nvim/option.c @@ -0,0 +1,8311 @@ +/* + * VIM - Vi IMproved by Bram Moolenaar + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * See README.txt for an overview of the Vim source code. + */ + +/* + * Code to handle user-settable options. This is all pretty much table- + * driven. Checklist for adding a new option: + * - Put it in the options array below (copy an existing entry). + * - For a global option: Add a variable for it in option_defs.h. + * - For a buffer or window local option: + * - Add a PV_XX entry to the enum below. + * - Add a variable to the window or buffer struct in buffer_defs.h. + * - For a window option, add some code to copy_winopt(). + * - For a buffer option, add some code to buf_copy_options(). + * - For a buffer string option, add code to check_buf_options(). + * - If it's a numeric option, add any necessary bounds checks to do_set(). + * - If it's a list of flags, add some code in do_set(), search for WW_ALL. + * - When adding an option with expansion (P_EXPAND), but with a different + * default for Vi and Vim (no P_VI_DEF), add some code at VIMEXP. + * - Add documentation! One line in doc/help.txt, full description in + * options.txt, and any other related places. + * - Add an entry in runtime/optwin.vim. + * When making changes: + * - Adjust the help for the option in doc/option.txt. + * - When an entry has the P_VIM flag, or is lacking the P_VI_DEF flag, add a + * comment at the help for the 'compatible' option. + */ + +#define IN_OPTION_C +#include <string.h> +#include <stdint.h> +#include <stdlib.h> + +#include "vim.h" +#include "option.h" +#include "blowfish.h" +#include "buffer.h" +#include "charset.h" +#include "diff.h" +#include "digraph.h" +#include "eval.h" +#include "ex_cmds2.h" +#include "ex_docmd.h" +#include "ex_getln.h" +#include "fileio.h" +#include "fold.h" +#include "getchar.h" +#include "hardcopy.h" +#include "indent_c.h" +#include "mbyte.h" +#include "memfile.h" +#include "memline.h" +#include "memory.h" +#include "message.h" +#include "misc1.h" +#include "misc2.h" +#include "keymap.h" +#include "crypt.h" +#include "garray.h" +#include "cursor_shape.h" +#include "move.h" +#include "normal.h" +#include "os_unix.h" +#include "path.h" +#include "regexp.h" +#include "screen.h" +#include "spell.h" +#include "syntax.h" +#include "term.h" +#include "ui.h" +#include "undo.h" +#include "window.h" +#include "os/os.h" + +/* + * The options that are local to a window or buffer have "indir" set to one of + * these values. Special values: + * PV_NONE: global option. + * PV_WIN is added: window-local option + * PV_BUF is added: buffer-local option + * PV_BOTH is added: global option which also has a local value. + */ +#define PV_BOTH 0x1000 +#define PV_WIN 0x2000 +#define PV_BUF 0x4000 +#define PV_MASK 0x0fff +#define OPT_WIN(x) (idopt_T)(PV_WIN + (int)(x)) +#define OPT_BUF(x) (idopt_T)(PV_BUF + (int)(x)) +#define OPT_BOTH(x) (idopt_T)(PV_BOTH + (int)(x)) + +/* + * Definition of the PV_ values for buffer-local options. + * The BV_ values are defined in option_defs.h. + */ +#define PV_AI OPT_BUF(BV_AI) +#define PV_AR OPT_BOTH(OPT_BUF(BV_AR)) +# define PV_BH OPT_BUF(BV_BH) +# define PV_BT OPT_BUF(BV_BT) +# define PV_EFM OPT_BOTH(OPT_BUF(BV_EFM)) +# define PV_GP OPT_BOTH(OPT_BUF(BV_GP)) +# define PV_MP OPT_BOTH(OPT_BUF(BV_MP)) +#define PV_BIN OPT_BUF(BV_BIN) +#define PV_BL OPT_BUF(BV_BL) +# define PV_BOMB OPT_BUF(BV_BOMB) +#define PV_CI OPT_BUF(BV_CI) +# define PV_CIN OPT_BUF(BV_CIN) +# define PV_CINK OPT_BUF(BV_CINK) +# define PV_CINO OPT_BUF(BV_CINO) +# define PV_CINW OPT_BUF(BV_CINW) +#define PV_CM OPT_BOTH(OPT_BUF(BV_CM)) +# define PV_CMS OPT_BUF(BV_CMS) +# define PV_COM OPT_BUF(BV_COM) +# define PV_CPT OPT_BUF(BV_CPT) +# define PV_DICT OPT_BOTH(OPT_BUF(BV_DICT)) +# define PV_TSR OPT_BOTH(OPT_BUF(BV_TSR)) +# define PV_CFU OPT_BUF(BV_CFU) +# define PV_DEF OPT_BOTH(OPT_BUF(BV_DEF)) +# define PV_INC OPT_BOTH(OPT_BUF(BV_INC)) +#define PV_EOL OPT_BUF(BV_EOL) +#define PV_EP OPT_BOTH(OPT_BUF(BV_EP)) +#define PV_ET OPT_BUF(BV_ET) +# define PV_FENC OPT_BUF(BV_FENC) +# define PV_FEX OPT_BUF(BV_FEX) +#define PV_FF OPT_BUF(BV_FF) +#define PV_FLP OPT_BUF(BV_FLP) +#define PV_FO OPT_BUF(BV_FO) +# define PV_FT OPT_BUF(BV_FT) +#define PV_IMI OPT_BUF(BV_IMI) +#define PV_IMS OPT_BUF(BV_IMS) +# define PV_INDE OPT_BUF(BV_INDE) +# define PV_INDK OPT_BUF(BV_INDK) +# define PV_INEX OPT_BUF(BV_INEX) +#define PV_INF OPT_BUF(BV_INF) +#define PV_ISK OPT_BUF(BV_ISK) +# define PV_KEY OPT_BUF(BV_KEY) +# define PV_KMAP OPT_BUF(BV_KMAP) +#define PV_KP OPT_BOTH(OPT_BUF(BV_KP)) +# define PV_LISP OPT_BUF(BV_LISP) +#define PV_MA OPT_BUF(BV_MA) +#define PV_ML OPT_BUF(BV_ML) +#define PV_MOD OPT_BUF(BV_MOD) +#define PV_MPS OPT_BUF(BV_MPS) +#define PV_NF OPT_BUF(BV_NF) +# define PV_OFU OPT_BUF(BV_OFU) +#define PV_PATH OPT_BOTH(OPT_BUF(BV_PATH)) +#define PV_PI OPT_BUF(BV_PI) +# define PV_QE OPT_BUF(BV_QE) +#define PV_RO OPT_BUF(BV_RO) +# define PV_SI OPT_BUF(BV_SI) +# define PV_SMC OPT_BUF(BV_SMC) +# define PV_SYN OPT_BUF(BV_SYN) +# define PV_SPC OPT_BUF(BV_SPC) +# define PV_SPF OPT_BUF(BV_SPF) +# define PV_SPL OPT_BUF(BV_SPL) +#define PV_STS OPT_BUF(BV_STS) +# define PV_SUA OPT_BUF(BV_SUA) +#define PV_SW OPT_BUF(BV_SW) +#define PV_SWF OPT_BUF(BV_SWF) +#define PV_TAGS OPT_BOTH(OPT_BUF(BV_TAGS)) +#define PV_TS OPT_BUF(BV_TS) +#define PV_TW OPT_BUF(BV_TW) +# define PV_UDF OPT_BUF(BV_UDF) +#define PV_WM OPT_BUF(BV_WM) + +/* + * Definition of the PV_ values for window-local options. + * The WV_ values are defined in option_defs.h. + */ +#define PV_LIST OPT_WIN(WV_LIST) +# define PV_ARAB OPT_WIN(WV_ARAB) +# define PV_DIFF OPT_WIN(WV_DIFF) +# define PV_FDC OPT_WIN(WV_FDC) +# define PV_FEN OPT_WIN(WV_FEN) +# define PV_FDI OPT_WIN(WV_FDI) +# define PV_FDL OPT_WIN(WV_FDL) +# define PV_FDM OPT_WIN(WV_FDM) +# define PV_FML OPT_WIN(WV_FML) +# define PV_FDN OPT_WIN(WV_FDN) +# define PV_FDE OPT_WIN(WV_FDE) +# define PV_FDT OPT_WIN(WV_FDT) +# define PV_FMR OPT_WIN(WV_FMR) +# define PV_LBR OPT_WIN(WV_LBR) +#define PV_NU OPT_WIN(WV_NU) +#define PV_RNU OPT_WIN(WV_RNU) +# define PV_NUW OPT_WIN(WV_NUW) +# define PV_PVW OPT_WIN(WV_PVW) +# define PV_RL OPT_WIN(WV_RL) +# define PV_RLC OPT_WIN(WV_RLC) +# define PV_SCBIND OPT_WIN(WV_SCBIND) +#define PV_SCROLL OPT_WIN(WV_SCROLL) +# define PV_SPELL OPT_WIN(WV_SPELL) +# define PV_CUC OPT_WIN(WV_CUC) +# define PV_CUL OPT_WIN(WV_CUL) +# define PV_CC OPT_WIN(WV_CC) +# define PV_STL OPT_BOTH(OPT_WIN(WV_STL)) +#define PV_UL OPT_BOTH(OPT_BUF(BV_UL)) +# define PV_WFH OPT_WIN(WV_WFH) +# define PV_WFW OPT_WIN(WV_WFW) +#define PV_WRAP OPT_WIN(WV_WRAP) +# define PV_CRBIND OPT_WIN(WV_CRBIND) +# define PV_COCU OPT_WIN(WV_COCU) +# define PV_COLE OPT_WIN(WV_COLE) + +/* WV_ and BV_ values get typecasted to this for the "indir" field */ +typedef enum { + PV_NONE = 0, + PV_MAXVAL = 0xffff /* to avoid warnings for value out of range */ +} idopt_T; + +/* + * Options local to a window have a value local to a buffer and global to all + * buffers. Indicate this by setting "var" to VAR_WIN. + */ +#define VAR_WIN ((char_u *)-1) + +/* + * These are the global values for options which are also local to a buffer. + * Only to be used in option.c! + */ +static int p_ai; +static int p_bin; +static int p_bomb; +static char_u *p_bh; +static char_u *p_bt; +static int p_bl; +static int p_ci; +static int p_cin; +static char_u *p_cink; +static char_u *p_cino; +static char_u *p_cinw; +static char_u *p_com; +static char_u *p_cms; +static char_u *p_cpt; +static char_u *p_cfu; +static char_u *p_ofu; +static int p_eol; +static int p_et; +static char_u *p_fenc; +static char_u *p_ff; +static char_u *p_fo; +static char_u *p_flp; +static char_u *p_ft; +static long p_iminsert; +static long p_imsearch; +static char_u *p_inex; +static char_u *p_inde; +static char_u *p_indk; +static char_u *p_fex; +static int p_inf; +static char_u *p_isk; +static char_u *p_key; +static int p_lisp; +static int p_ml; +static int p_ma; +static int p_mod; +static char_u *p_mps; +static char_u *p_nf; +static int p_pi; +static char_u *p_qe; +static int p_ro; +static int p_si; +static long p_sts; +static char_u *p_sua; +static long p_sw; +static int p_swf; +static long p_smc; +static char_u *p_syn; +static char_u *p_spc; +static char_u *p_spf; +static char_u *p_spl; +static long p_ts; +static long p_tw; +static int p_udf; +static long p_wm; +static char_u *p_keymap; + +/* Saved values for when 'bin' is set. */ +static int p_et_nobin; +static int p_ml_nobin; +static long p_tw_nobin; +static long p_wm_nobin; + +/* Saved values for when 'paste' is set */ +static long p_tw_nopaste; +static long p_wm_nopaste; +static long p_sts_nopaste; +static int p_ai_nopaste; + +struct vimoption { + char *fullname; /* full option name */ + char *shortname; /* permissible abbreviation */ + long_u flags; /* see below */ + char_u *var; /* global option: pointer to variable; + * window-local option: VAR_WIN; + * buffer-local option: global value */ + idopt_T indir; /* global option: PV_NONE; + * local option: indirect option index */ + char_u *def_val[2]; /* default values for variable (vi and vim) */ + scid_T scriptID; /* script in which the option was last set */ +# define SCRIPTID_INIT , 0 +}; + +#define VI_DEFAULT 0 /* def_val[VI_DEFAULT] is Vi default value */ +#define VIM_DEFAULT 1 /* def_val[VIM_DEFAULT] is Vim default value */ + +/* + * Flags + */ +#define P_BOOL 0x01 /* the option is boolean */ +#define P_NUM 0x02 /* the option is numeric */ +#define P_STRING 0x04 /* the option is a string */ +#define P_ALLOCED 0x08 /* the string option is in allocated memory, + must use free_string_option() when + assigning new value. Not set if default is + the same. */ +#define P_EXPAND 0x10 /* environment expansion. NOTE: P_EXPAND can + never be used for local or hidden options! */ +#define P_NODEFAULT 0x40 /* don't set to default value */ +#define P_DEF_ALLOCED 0x80 /* default value is in allocated memory, must + use free() when assigning new value */ +#define P_WAS_SET 0x100 /* option has been set/reset */ +#define P_NO_MKRC 0x200 /* don't include in :mkvimrc output */ +#define P_VI_DEF 0x400 /* Use Vi default for Vim */ +#define P_VIM 0x800 /* Vim option, reset when 'cp' set */ + +/* when option changed, what to display: */ +#define P_RSTAT 0x1000 /* redraw status lines */ +#define P_RWIN 0x2000 /* redraw current window */ +#define P_RBUF 0x4000 /* redraw current buffer */ +#define P_RALL 0x6000 /* redraw all windows */ +#define P_RCLR 0x7000 /* clear and redraw all */ + +#define P_COMMA 0x8000 /* comma separated list */ +#define P_NODUP 0x10000L /* don't allow duplicate strings */ +#define P_FLAGLIST 0x20000L /* list of single-char flags */ + +#define P_SECURE 0x40000L /* cannot change in modeline or secure mode */ +#define P_GETTEXT 0x80000L /* expand default value with _() */ +#define P_NOGLOB 0x100000L /* do not use local value for global vimrc */ +#define P_NFNAME 0x200000L /* only normal file name chars allowed */ +#define P_INSECURE 0x400000L /* option was set from a modeline */ +#define P_PRI_MKRC 0x800000L /* priority for :mkvimrc (setting option has + side effects) */ +#define P_NO_ML 0x1000000L /* not allowed in modeline */ +#define P_CURSWANT 0x2000000L /* update curswant required; not needed when + * there is a redraw flag */ + +#define ISK_LATIN1 (char_u *)"@,48-57,_,192-255" + +/* 'isprint' for latin1 is also used for MS-Windows cp1252, where 0x80 is used + * for the currency sign. */ +# define ISP_LATIN1 (char_u *)"@,161-255" + +/* The 16 bit MS-DOS version is low on space, make the string as short as + * possible when compiling with few features. */ +#if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \ + || defined(FEAT_VERTSPLIT) \ + || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL) +# define HIGHLIGHT_INIT \ + "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn" +#else +# define HIGHLIGHT_INIT \ + "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill" +#endif + +/* + * options[] is initialized here. + * The order of the options MUST be alphabetic for ":set all" and findoption(). + * All option names MUST start with a lowercase letter (for findoption()). + * Exception: "t_" options are at the end. + * The options with a NULL variable are 'hidden': a set command for them is + * ignored and they are not printed. + */ +static struct vimoption + options[] = +{ + {"aleph", "al", P_NUM|P_VI_DEF|P_CURSWANT, + (char_u *)&p_aleph, PV_NONE, + { + (char_u *)224L, + (char_u *)0L + } SCRIPTID_INIT}, + {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)FALSE} + SCRIPTID_INIT}, + {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT, + (char_u *)VAR_WIN, PV_ARAB, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + (char_u *)&p_arshape, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"allowrevins", "ari", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_ari, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"altkeymap", "akm", P_BOOL|P_VI_DEF, + (char_u *)&p_altkeymap, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"ambiwidth", "ambw", P_STRING|P_VI_DEF|P_RCLR, + (char_u *)&p_ambw, PV_NONE, + {(char_u *)"single", (char_u *)0L} + SCRIPTID_INIT}, + {"autochdir", "acd", P_BOOL|P_VI_DEF, + (char_u *)&p_acd, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autoindent", "ai", P_BOOL|P_VI_DEF, + (char_u *)&p_ai, PV_AI, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autoprint", "ap", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autoread", "ar", P_BOOL|P_VI_DEF, + (char_u *)&p_ar, PV_AR, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autowrite", "aw", P_BOOL|P_VI_DEF, + (char_u *)&p_aw, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autowriteall","awa", P_BOOL|P_VI_DEF, + (char_u *)&p_awa, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"background", "bg", P_STRING|P_VI_DEF|P_RCLR, + (char_u *)&p_bg, PV_NONE, + { + (char_u *)"light", + (char_u *)0L + } SCRIPTID_INIT}, + {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bs, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_bk, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"backupcopy", "bkc", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bkc, PV_NONE, +#ifdef UNIX + {(char_u *)"yes", (char_u *)"auto"} +#else + {(char_u *)"auto", (char_u *)"auto"} +#endif + SCRIPTID_INIT}, + {"backupdir", "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_bdir, PV_NONE, + {(char_u *)DFLT_BDIR, (char_u *)0L} SCRIPTID_INIT}, + {"backupext", "bex", P_STRING|P_VI_DEF|P_NFNAME, + (char_u *)&p_bex, PV_NONE, + { + (char_u *)"~", + (char_u *)0L + } SCRIPTID_INIT}, + {"backupskip", "bsk", P_STRING|P_VI_DEF|P_COMMA, + (char_u *)&p_bsk, PV_NONE, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"beautify", "bf", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"binary", "bin", P_BOOL|P_VI_DEF|P_RSTAT, + (char_u *)&p_bin, PV_BIN, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"bioskey", "biosk",P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"bomb", NULL, P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + (char_u *)&p_bomb, PV_BOMB, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"breakat", "brk", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, + (char_u *)&p_breakat, PV_NONE, + {(char_u *)" \t!@*-+;:,./?", (char_u *)0L} + SCRIPTID_INIT}, + {"browsedir", "bsdir",P_STRING|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + SCRIPTID_INIT}, + {"bufhidden", "bh", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB, + (char_u *)&p_bh, PV_BH, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"buflisted", "bl", P_BOOL|P_VI_DEF|P_NOGLOB, + (char_u *)&p_bl, PV_BL, + {(char_u *)1L, (char_u *)0L} + SCRIPTID_INIT}, + {"buftype", "bt", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB, + (char_u *)&p_bt, PV_BT, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"casemap", "cmp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cmp, PV_NONE, + {(char_u *)"internal,keepascii", (char_u *)0L} + SCRIPTID_INIT}, + {"cdpath", "cd", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cdpath, PV_NONE, + {(char_u *)",,", (char_u *)0L} + SCRIPTID_INIT}, + {"cedit", NULL, P_STRING, + (char_u *)&p_cedit, PV_NONE, + {(char_u *)"", (char_u *)CTRL_F_STR} + SCRIPTID_INIT}, + {"charconvert", "ccv", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_ccv, PV_NONE, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"cindent", "cin", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_cin, PV_CIN, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cinkeys", "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cink, PV_CINK, + {(char_u *)"0{,0},0),:,0#,!^F,o,O,e", (char_u *)0L} + SCRIPTID_INIT}, + {"cinoptions", "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cino, PV_CINO, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"cinwords", "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cinw, PV_CINW, + {(char_u *)"if,else,while,do,for,switch", + (char_u *)0L} + SCRIPTID_INIT}, + {"clipboard", "cb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"cmdheight", "ch", P_NUM|P_VI_DEF|P_RALL, + (char_u *)&p_ch, PV_NONE, + {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"cmdwinheight", "cwh", P_NUM|P_VI_DEF, + (char_u *)&p_cwh, PV_NONE, + {(char_u *)7L, (char_u *)0L} SCRIPTID_INIT}, + {"colorcolumn", "cc", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN, + (char_u *)VAR_WIN, PV_CC, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Columns, PV_NONE, + {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT}, + {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP| + P_CURSWANT, + (char_u *)&p_com, PV_COM, + {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-", + (char_u *)0L} + SCRIPTID_INIT}, + {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT, + (char_u *)&p_cms, PV_CMS, + {(char_u *)"/*%s*/", (char_u *)0L} + SCRIPTID_INIT}, + /* P_PRI_MKRC isn't needed here, optval_default() + * always returns TRUE for 'compatible' */ + {"compatible", "cp", P_BOOL|P_RALL, + (char_u *)&p_cp, PV_NONE, + {(char_u *)TRUE, (char_u *)FALSE} SCRIPTID_INIT}, + {"complete", "cpt", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cpt, PV_CPT, + {(char_u *)".,w,b,u,t,i", (char_u *)0L} + SCRIPTID_INIT}, + {"concealcursor","cocu", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF, + (char_u *)VAR_WIN, PV_COCU, + {(char_u *)"", (char_u *)NULL} + SCRIPTID_INIT}, + {"conceallevel","cole", P_NUM|P_RWIN|P_VI_DEF, + (char_u *)VAR_WIN, PV_COLE, + {(char_u *)0L, (char_u *)0L} + SCRIPTID_INIT}, + {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE, + (char_u *)&p_cfu, PV_CFU, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"completeopt", "cot", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_cot, PV_NONE, + {(char_u *)"menu,preview", (char_u *)0L} + SCRIPTID_INIT}, + {"confirm", "cf", P_BOOL|P_VI_DEF, + (char_u *)&p_confirm, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"conskey", "consk",P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"copyindent", "ci", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_ci, PV_CI, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cpoptions", "cpo", P_STRING|P_VIM|P_RALL|P_FLAGLIST, + (char_u *)&p_cpo, PV_NONE, + {(char_u *)CPO_VI, (char_u *)CPO_VIM} + SCRIPTID_INIT}, + {"cryptmethod", "cm", P_STRING|P_ALLOCED|P_VI_DEF, + (char_u *)&p_cm, PV_CM, + {(char_u *)"zip", (char_u *)0L} + SCRIPTID_INIT}, + {"cscopepathcomp", "cspc", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_cspc, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopeprg", "csprg", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_csprg, PV_NONE, + {(char_u *)"cscope", (char_u *)0L} + SCRIPTID_INIT}, + {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_csqf, PV_NONE, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"cscoperelative", "csre", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_csre, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopetag", "cst", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_cst, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopetagorder", "csto", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_csto, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopeverbose", "csverb", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_csverbose, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cursorbind", "crb", P_BOOL|P_VI_DEF, + (char_u *)VAR_WIN, PV_CRBIND, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cursorcolumn", "cuc", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_CUC, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cursorline", "cul", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_CUL, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"debug", NULL, P_STRING|P_VI_DEF, + (char_u *)&p_debug, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT, + (char_u *)&p_def, PV_DEF, + {(char_u *)"^\\s*#\\s*define", (char_u *)0L} + SCRIPTID_INIT}, + {"delcombine", "deco", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_deco, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_dict, PV_DICT, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"diff", NULL, P_BOOL|P_VI_DEF|P_RWIN|P_NOGLOB, + (char_u *)VAR_WIN, PV_DIFF, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE|P_CURSWANT, + (char_u *)&p_dex, PV_NONE, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"diffopt", "dip", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_COMMA|P_NODUP, + (char_u *)&p_dip, PV_NONE, + {(char_u *)"filler", (char_u *)NULL} + SCRIPTID_INIT}, + {"digraph", "dg", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_dg, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"directory", "dir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_dir, PV_NONE, + {(char_u *)DFLT_DIR, (char_u *)0L} SCRIPTID_INIT}, + {"display", "dy", P_STRING|P_VI_DEF|P_COMMA|P_RALL|P_NODUP, + (char_u *)&p_dy, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"eadirection", "ead", P_STRING|P_VI_DEF, + (char_u *)&p_ead, PV_NONE, + {(char_u *)"both", (char_u *)0L} + SCRIPTID_INIT}, + {"edcompatible","ed", P_BOOL|P_VI_DEF, + (char_u *)&p_ed, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"encoding", "enc", P_STRING|P_VI_DEF|P_RCLR|P_NO_ML, + (char_u *)&p_enc, PV_NONE, + {(char_u *)ENC_DFLT, (char_u *)0L} + SCRIPTID_INIT}, + {"endofline", "eol", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + (char_u *)&p_eol, PV_EOL, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"equalalways", "ea", P_BOOL|P_VI_DEF|P_RALL, + (char_u *)&p_ea, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"equalprg", "ep", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_ep, PV_EP, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"errorbells", "eb", P_BOOL|P_VI_DEF, + (char_u *)&p_eb, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"errorfile", "ef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_ef, PV_NONE, + {(char_u *)DFLT_ERRORFILE, (char_u *)0L} + SCRIPTID_INIT}, + {"errorformat", "efm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_efm, PV_EFM, + {(char_u *)DFLT_EFM, (char_u *)0L} + SCRIPTID_INIT}, + {"esckeys", "ek", P_BOOL|P_VIM, + (char_u *)&p_ek, PV_NONE, + {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"eventignore", "ei", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_ei, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"expandtab", "et", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_et, PV_ET, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"exrc", "ex", P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_exrc, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF|P_NO_MKRC, + (char_u *)&p_fenc, PV_FENC, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"fileencodings","fencs", P_STRING|P_VI_DEF|P_COMMA, + (char_u *)&p_fencs, PV_NONE, + {(char_u *)"ucs-bom", (char_u *)0L} + SCRIPTID_INIT}, + {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC| + P_CURSWANT, + (char_u *)&p_ff, PV_FF, + {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT}, + {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_ffs, PV_NONE, + {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM} + SCRIPTID_INIT}, + {"fileignorecase", "fic", P_BOOL|P_VI_DEF, + (char_u *)&p_fic, PV_NONE, + { +#ifdef CASE_INSENSITIVE_FILENAME + (char_u *)TRUE, +#else + (char_u *)FALSE, +#endif + (char_u *)0L + } SCRIPTID_INIT}, + {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME, + (char_u *)&p_ft, PV_FT, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"fillchars", "fcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + (char_u *)&p_fcs, PV_NONE, + {(char_u *)"vert:|,fold:-", (char_u *)0L} + SCRIPTID_INIT}, + {"fkmap", "fk", P_BOOL|P_VI_DEF, + (char_u *)&p_fkmap, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"flash", "fl", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"foldclose", "fcl", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN, + (char_u *)&p_fcl, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"foldcolumn", "fdc", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDC, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"foldenable", "fen", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FEN, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"foldexpr", "fde", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDE, + {(char_u *)"0", (char_u *)NULL} + SCRIPTID_INIT}, + {"foldignore", "fdi", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDI, + {(char_u *)"#", (char_u *)NULL} SCRIPTID_INIT}, + {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDL, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"foldlevelstart","fdls", P_NUM|P_VI_DEF|P_CURSWANT, + (char_u *)&p_fdls, PV_NONE, + {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT}, + {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF| + P_RWIN|P_COMMA|P_NODUP, + (char_u *)VAR_WIN, PV_FMR, + {(char_u *)"{{{,}}}", (char_u *)NULL} + SCRIPTID_INIT}, + {"foldmethod", "fdm", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDM, + {(char_u *)"manual", (char_u *)NULL} SCRIPTID_INIT}, + {"foldminlines","fml", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FML, + {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDN, + {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, + {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT, + (char_u *)&p_fdo, PV_NONE, + {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo", + (char_u *)0L} SCRIPTID_INIT}, + {"foldtext", "fdt", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDT, + {(char_u *)"foldtext()", (char_u *)NULL} + SCRIPTID_INIT}, + {"formatexpr", "fex", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + (char_u *)&p_fex, PV_FEX, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST, + (char_u *)&p_fo, PV_FO, + {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM} + SCRIPTID_INIT}, + {"formatlistpat","flp", P_STRING|P_ALLOCED|P_VI_DEF, + (char_u *)&p_flp, PV_FLP, + {(char_u *)"^\\s*\\d\\+[\\]:.)}\\t ]\\s*", + (char_u *)0L} SCRIPTID_INIT}, + {"formatprg", "fp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_fp, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"fsync", "fs", P_BOOL|P_SECURE|P_VI_DEF, +#ifdef HAVE_FSYNC + (char_u *)&p_fs, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} +#else + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} +#endif + SCRIPTID_INIT}, + {"gdefault", "gd", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_gd, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"graphic", "gr", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"grepformat", "gfm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_gefm, PV_NONE, + {(char_u *)DFLT_GREPFORMAT, (char_u *)0L} + SCRIPTID_INIT}, + {"grepprg", "gp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_gp, PV_GP, + { +# ifdef UNIX + /* Add an extra file name so that grep will always + * insert a file name in the match line. */ + (char_u *)"grep -n $* /dev/null", +# else + (char_u *)"grep -n ", +# endif + (char_u *)0L + } + SCRIPTID_INIT}, + {"guicursor", "gcr", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_guicursor, PV_NONE, + { + (char_u *)"n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block", + (char_u *)0L + } + SCRIPTID_INIT}, + {"guifont", "gfn", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"guifontset", "gfs", P_STRING|P_VI_DEF|P_RCLR|P_COMMA, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"guifontwide", "gfw", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"guiheadroom", "ghr", P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)50L, (char_u *)0L} SCRIPTID_INIT}, + {"guioptions", "go", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"guipty", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"guitablabel", "gtl", P_STRING|P_VI_DEF|P_RWIN, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"guitabtooltip", "gtt", P_STRING|P_VI_DEF|P_RWIN, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"hardtabs", "ht", P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"helpfile", "hf", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_hf, PV_NONE, + {(char_u *)DFLT_HELPFILE, (char_u *)0L} + SCRIPTID_INIT}, + {"helpheight", "hh", P_NUM|P_VI_DEF, + (char_u *)&p_hh, PV_NONE, + {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, + {"helplang", "hlg", P_STRING|P_VI_DEF|P_COMMA, + (char_u *)&p_hlg, PV_NONE, + {(char_u *)"", (char_u *)0L} + SCRIPTID_INIT}, + {"hidden", "hid", P_BOOL|P_VI_DEF, + (char_u *)&p_hid, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"highlight", "hl", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + (char_u *)&p_hl, PV_NONE, + {(char_u *)HIGHLIGHT_INIT, (char_u *)0L} + SCRIPTID_INIT}, + {"history", "hi", P_NUM|P_VIM, + (char_u *)&p_hi, PV_NONE, + {(char_u *)0L, (char_u *)20L} SCRIPTID_INIT}, + {"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_hkmap, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"hkmapp", "hkp", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_hkmapp, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"hlsearch", "hls", P_BOOL|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_hls, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"icon", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_icon, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"iconstring", NULL, P_STRING|P_VI_DEF, + (char_u *)&p_iconstring, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"ignorecase", "ic", P_BOOL|P_VI_DEF, + (char_u *)&p_ic, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"imactivatefunc","imaf",P_STRING|P_VI_DEF|P_SECURE, + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + SCRIPTID_INIT}, + {"imactivatekey","imak",P_STRING|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"imcmdline", "imc", P_BOOL|P_VI_DEF, +#ifdef USE_IM_CONTROL + (char_u *)&p_imcmdline, PV_NONE, +#else + (char_u *)NULL, PV_NONE, +#endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"imdisable", "imd", P_BOOL|P_VI_DEF, +#ifdef USE_IM_CONTROL + (char_u *)&p_imdisable, PV_NONE, +#else + (char_u *)NULL, PV_NONE, +#endif + {(char_u *)FALSE, (char_u *)0L} + SCRIPTID_INIT}, + {"iminsert", "imi", P_NUM|P_VI_DEF, + (char_u * |