www.pudn.com > vim53src.zip > option.h


/* vi:set ts=8 sts=4 sw=4: 
 * 
 * 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. 
 */ 
 
/* 
 * option.h: definition of global variables for settable options 
 * 
 * EXTERN is only defined in main.c (and vim.h) 
 */ 
 
#ifndef EXTERN 
# define EXTERN extern 
# define INIT(x) 
#else 
# ifndef INIT 
#  define INIT(x) x 
# endif 
#endif 
 
/* default values for p_efm 'errorformat' */ 
#ifdef AMIGA 
			/* don't use [^0-9] here, Manx C can't handle it */ 
# define EFM_DFLT	"%f>%l:%c:%t:%n:%m,%f:%l: %t%*[^0123456789]%n: %m,%f %l %t%*[^0123456789]%n: %m,%*[^\"]\"%f\"%*[^0123456789]%l: %m,%f:%l:%m" 
#else 
# if defined MSDOS  ||	defined WIN32 
#  define EFM_DFLT	"%f(%l) : %t%*[^0-9]%n: %m,%*[^\"]\"%f\"%*[^0-9]%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%m" 
# else 
#  if defined(__EMX__)	/* put most common here (i.e. gcc format) at front */ 
#   define EFM_DFLT	"%f:%l:%m,%*[^\"]\"%f\"%*[^0-9]%l: %m,\"%f\"%*[^0-9]%l: %m,%f(%l:%c) : %m" 
#  else 
#   if defined(__QNX__) 
#    define EFM_DFLT	"%f(%l):%*[^WE]%t%*[^0123456789]%n:%m" 
#   else /* Unix, probably */ 
#    define EFM_DFLT	"%*[^\"]\"%f\"%*[^0-9]%l: %m,\"%f\"%*[^0-9]%l: %m,%f:%l:%m,\"%f\"\\, line %l%*[^0-9]%c%*[^ ] %m" 
#   endif 
#  endif 
# endif 
#endif 
 
#define GEFM_DFLT	"%f:%l%m,%f  %l%m" 
 
/* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */ 
#define FF_DOS		"dos" 
#define FF_MAC		"mac" 
#define FF_UNIX		"unix" 
 
#ifdef USE_CRNL 
# define FF_DFLT	"dos" 
# define FFS_DFLT	"dos,unix" 
# define FFS_VI		"dos,unix"	/* also autodetect in compatible mode */ 
# define TA_DFLT	TRUE 
#else 
# ifdef USE_CR 
#  define FF_DFLT	"mac" 
#  define FFS_DFLT	"mac,unix,dos" 
# else 
#  define FF_DFLT	"unix" 
#  define FFS_DFLT	"unix,dos" 
# endif 
# define FFS_VI		"" 
# define TA_DFLT	FALSE 
#endif 
 
#ifdef MULTI_BYTE 
#define FE_ANSI		"ansi" 
#define FE_UNICODE	"unicode" 
#define FE_DBJPN	"japan" 
#define FE_DBKOR	"korea" 
#define FE_DBCHT	"taiwan" 
#define FE_DBCHS	"prc" 
#define FE_HEBREW	"hebrew" 
#define FE_FARSI	"farsi" 
 
/* default value for 'fileencoding' */ 
#define FE_DFLT		FE_ANSI 
#endif 
 
/* end-of-line style */ 
#define EOL_UNKNOWN	-1	/* not defined yet */ 
#define EOL_UNIX	0	/* NL */ 
#define EOL_DOS		1	/* CR NL */ 
#define EOL_MAC		2	/* CR */ 
 
/* Formatting options for p_fo 'formatoptions' */ 
#define FO_WRAP		't' 
#define FO_WRAP_COMS	'c' 
#define FO_RET_COMS	'r' 
#define FO_OPEN_COMS	'o' 
#define FO_Q_COMS	'q' 
#define FO_Q_SECOND	'2' 
#define FO_INS_VI	'v' 
#define FO_INS_LONG	'l' 
#define FO_INS_BLANK	'b' 
 
#define FO_DFLT_VI	"vt" 
#define FO_DFLT		"tcq" 
#define FO_ALL		"tcroq2vlb,"	/* for do_set() */ 
 
/* characters for the p_cpo option: */ 
#define CPO_ALTREAD	'a'	/* ":read" sets alternate file name */ 
#define CPO_ALTWRITE	'A'	/* ":write" sets alternate file name */ 
#define CPO_BAR		'b'	/* "\|" ends a mapping */ 
#define CPO_BSLASH	'B'	/* backslash in mapping is not special */ 
#define CPO_SEARCH	'c' 
#define CPO_DOTTAG	'd'	/* "./tags" in 'tags' is in current dir */ 
#define CPO_EXECBUF	'e' 
#define CPO_EMPTYREGION	'E'	/* operating on empty region is an error */ 
#define CPO_FNAMER	'f'	/* set file name for ":r file" */ 
#define CPO_FNAMEW	'F'	/* set file name for ":w file" */ 
#define CPO_JOINSP	'j'	/* only use two spaces for join after '.' */ 
#define CPO_KEYCODE	'k'	/* don't recognize raw key code in mappings */ 
#define CPO_LITERAL	'l'	/* take char after backslash in [] literal */ 
#define CPO_LISTWM	'L'	/* 'list' changes wrapmargin */ 
#define CPO_SHOWMATCH	'm' 
#define CPO_LINEOFF	'o' 
#define CPO_REDO	'r' 
#define CPO_BUFOPT	's' 
#define CPO_BUFOPTGLOB	'S' 
#define CPO_TAGPAT	't' 
#define CPO_UNDO	'u'	/* "u" undoes itself */ 
#define CPO_CW		'w'	/* "cw" only changes one blank */ 
#define CPO_FWRITE	'W'	/* "w!" doesn't overwrite readonly files */ 
#define CPO_ESC		'x' 
#define CPO_YANK	'y' 
#define CPO_DOLLAR	'$' 
#define CPO_FILTER	'!' 
#define CPO_MATCH	'%' 
#define CPO_STAR	'*'	/* ":*" means ":@" */ 
#define CPO_SPECI	'<'	/* don't recognize <> in mappings */ 
#define CPO_DEFAULT	"aABceFs" 
#define CPO_ALL		"aAbBcdeEfFjklLmorsStuwWxy$!%*<" 
 
/* characters for p_ww option: */ 
#define WW_ALL		"bshl<>[]," 
 
/* characters for p_mouse option: */ 
#define MOUSE_NORMAL	'n'		/* use mouse in Normal mode */ 
#define MOUSE_VISUAL	'v'		/* use mouse in Visual/Select mode */ 
#define MOUSE_INSERT	'i'		/* use mouse in Insert mode */ 
#define MOUSE_COMMAND	'c'		/* use mouse in Command-line mode */ 
#define MOUSE_HELP	'h'		/* use mouse in help buffers */ 
#define MOUSE_RETURN	'r'		/* use mouse for hit-return message */ 
#define MOUSE_A		"nvich"		/* used for 'a' flag */ 
#define MOUSE_ALL	"anvichr"	/* all possible characters */ 
 
/* characters for p_shm option: */ 
#define SHM_RO		'r'		/* readonly */ 
#define SHM_MOD		'm'		/* modified */ 
#define SHM_FILE	'f'		/* (file 1 of 2) */ 
#define SHM_LAST	'i'		/* last line incomplete */ 
#define SHM_TEXT	'x'		/* tx instead of textmode */ 
#define SHM_LINES	'l'		/* "L" instead of "lines" */ 
#define SHM_NEW		'n'		/* "[New]" instead of "[New file]" */ 
#define SHM_WRI		'w'		/* "[w]" instead of "written" */ 
#define SHM_A		"rmfixlnw"	/* represented by 'a' flag */ 
#define SHM_WRITE	'W'		/* don't use "written" at all */ 
#define SHM_TRUNC	't'		/* trunctate message */ 
#define SHM_OVER	'o'		/* overwrite file messages */ 
#define SHM_OVERALL	'O'		/* overwrite more messages */ 
#define SHM_SEARCH	's'		/* no search hit bottom messages */ 
#define SHM_ATTENTION	'A'		/* no ATTENTION messages */ 
#define SHM_INTRO	'I'		/* intro messages */ 
#define SHM_ALL		"rmfixlnwaWtoOsAI" /* all possible flags for 'shm' */ 
 
/* characters for p_guioptions: */ 
#define GO_ASEL		'a'		/* autoselect */ 
#define GO_BOT		'b'		/* use bottom scrollbar */ 
#define GO_FORG		'f'		/* start GUI in foreground */ 
#define GO_GREY		'g'		/* use grey menu items */ 
#define GO_ICON		'i'		/* use Vim icon */ 
#define GO_LEFT		'l'		/* use left scrollbar */ 
#define GO_MENUS	'm'		/* use menu bar */ 
#define GO_POINTER	'p'		/* pointer enter/leave callbacks */ 
#define GO_RIGHT	'r'		/* use right scrollbar */ 
#define GO_TEAROFF	't'		/* add tear-off menu items */ 
#define GO_TOOLBAR	'T'		/* add toolbar */ 
#define GO_ALL		"abfgilmprtT"	/* all possible flags for 'go' */ 
 
/* flags for 'comments' option */ 
#define COM_NEST	'n'		/* comments strings nest */ 
#define COM_BLANK	'b'		/* needs blank after string */ 
#define COM_START	's'		/* start of comment */ 
#define COM_MIDDLE	'm'		/* middle of comment */ 
#define COM_END		'e'		/* end of comment */ 
#define COM_FIRST	'f'		/* first line comment only */ 
#define COM_LEFT	'l'		/* left adjusted */ 
#define COM_RIGHT	'r'		/* right adjusted */ 
#define COM_ALL		"nbsmeflr"	/* all flags for 'comments' option */ 
#define COM_MAX_LEN	50		/* maximum length of a part */ 
 
/* flags used for parsed 'wildmode' */ 
#define WIM_FULL	1 
#define WIM_LONGEST	2 
#define WIM_LIST	4 
 
/* 
 * The following are actual variabables for the options 
 */ 
 
#ifdef RIGHTLEFT 
EXTERN long	p_aleph;	/* Hebrew 'Aleph' encoding */ 
#endif 
EXTERN int	p_aw;		/* auto-write */ 
EXTERN long	p_bs;		/* backspace over newlines in insert mode */ 
EXTERN char_u  *p_bg;		/* window background color: light or dark */ 
EXTERN int	p_bk;		/* make backups when writing out files */ 
EXTERN char_u  *p_bdir;		/* list of directory names for backup files */ 
EXTERN char_u  *p_bex;		/* extension for backup file */ 
EXTERN char_u  *p_bsdir;	/* 'browsedir' */ 
#ifdef MSDOS 
EXTERN int	p_biosk;	/* Use bioskey() instead of kbhit() */ 
#endif 
EXTERN char_u  *p_breakat;	/* characters that can cause a line break */ 
EXTERN long	p_ch;		/* command line height */ 
#if defined(GUI_DIALOG) || defined(CON_DIALOG) 
EXTERN int	p_confirm;	/* 'confirm' */ 
#endif 
EXTERN int	p_cp;		/* vi-compatible */ 
EXTERN char_u  *p_cpo;		/* vi-compatible option flags */ 
#ifdef USE_CSCOPE 
EXTERN char_u  *p_csprg;	/* name of cscope program */ 
EXTERN int	p_cst;		/* always use :cstag instead of :tag command */ 
EXTERN long	p_csto;		/* cscope/tags search order */ 
EXTERN int	p_csverbose;	/* cscope verbose messages flag */ 
#endif 
EXTERN char_u  *p_def;		/* Pattern for recognising definitions */ 
EXTERN char_u  *p_dict;		/* Dictionaries for ^P/^N */ 
#ifdef DIGRAPHS 
EXTERN int	p_dg;		/* enable digraphs */ 
#endif 
EXTERN char_u	*p_dir;		/* list of directories for swap file */ 
EXTERN int	p_ed;		/* :s is ed compatible */ 
EXTERN int	p_ea;		/* make windows equal height */ 
EXTERN char_u	*p_ep;		/* program name for '=' command */ 
EXTERN int	p_eb;		/* ring bell for errors */ 
#ifdef QUICKFIX 
EXTERN char_u  *p_ef;		/* name of errorfile */ 
EXTERN char_u  *p_efm;		/* error format */ 
EXTERN char_u  *p_gefm;		/* error format for grep -n */ 
#endif 
#ifdef AUTOCMD 
EXTERN char_u  *p_ei;		/* events ignored for autocommands */ 
#endif 
EXTERN int	p_ek;		/* function keys with ESC in insert mode */ 
EXTERN int	p_exrc;		/* read .exrc in current dir */ 
EXTERN char_u  *p_ffs;		/* acceptable file formats */ 
EXTERN char_u  *p_fp;		/* name of format program */ 
EXTERN int	p_gd;		/* /g is default for :s */ 
#ifdef USE_GUI 
EXTERN char_u  *p_guifont;	/* GUI font list */ 
EXTERN int	p_guipty;	/* use pseudo pty for external commands */ 
#endif 
#ifdef CURSOR_SHAPE 
EXTERN char_u  *p_guicursor;	/* shape settings for cursor */ 
#endif 
#if defined(USE_GUI) || defined(USE_CLIPBOARD) 
EXTERN char_u  *p_guioptions;	/* Which GUI components? */ 
#endif 
EXTERN char_u  *p_hf;		/* name of help file */ 
EXTERN long	p_hh;		/* help window height */ 
EXTERN int	p_hid;		/* buffers can be hidden */ 
EXTERN char_u  *p_hl;		/* which highlight mode to use */ 
EXTERN int	p_hls;		/* highlight matches with last search pattern */ 
EXTERN long	p_hi;		/* command line history size */ 
#ifdef RIGHTLEFT 
EXTERN int	p_hkmap;	/* Hebrew keyboard map */ 
EXTERN int	p_hkmapp;	/* idem, phonetic */ 
# ifdef FKMAP 
EXTERN int	p_fkmap;	/* Farsi keyboard map */ 
EXTERN int	p_altkeymap;	/* alternative keyboard map Hebrew/Farsi */ 
# endif 
#endif 
EXTERN int	p_icon;		/* put file name in icon if possible */ 
EXTERN char_u  *p_iconstring;	/* icon string */ 
EXTERN int	p_ic;		/* ignore case in searches */ 
EXTERN int	p_is;		/* incremental search */ 
EXTERN int	p_im;		/* start editing in input mode */ 
EXTERN char_u  *p_inc;		/* Pattern for including other files */ 
EXTERN char_u  *p_isf;		/* characters in a file name */ 
EXTERN char_u  *p_isi;		/* characters in an identifier */ 
EXTERN char_u  *p_isp;		/* characters that are printable */ 
EXTERN int	p_js;		/* use two spaces after '.' with Join */ 
EXTERN char_u  *p_kp;		/* keyword program */ 
EXTERN char_u  *p_km;		/* 'keymodel' */ 
#ifdef HAVE_LANGMAP 
EXTERN char_u  *p_langmap;	/* mapping for some language */ 
#endif 
EXTERN long	p_ls;		/* last window has status line */ 
EXTERN char_u  *p_lcs;		/* characters for list mode */ 
 
EXTERN int	p_lz;		/* lazy redraw, only when key typed */ 
EXTERN int	p_magic;	/* use some characters for reg exp */ 
#ifdef QUICKFIX 
EXTERN char_u  *p_mef;		/* name of make errorfile */ 
EXTERN char_u  *p_mp;		/* program for :make command */ 
EXTERN char_u  *p_gp;		/* program for :grep command */ 
#endif 
EXTERN long	p_mat;		/* time to show the match of a paren */ 
EXTERN long	p_mfd;		/* 'maxfuncdepth' */ 
EXTERN long	p_mmd;		/* 'maxmapdepth' */ 
EXTERN long	p_mm;		/* maximal amount of memory for buffer */ 
EXTERN long	p_mmt;		/* maximal amount of memory for Vim */ 
EXTERN long	p_mls;		/* number of mode lines */ 
EXTERN char_u  *p_mouse;	/* flags for use of mouse */ 
#ifdef USE_GUI 
EXTERN int	p_mousef;	/* 'mousefocus' */ 
EXTERN int	p_mh;		/* hide pointer enable */ 
#endif 
EXTERN char_u  *p_mousem;	/* 'mousemodel' */ 
EXTERN long	p_mouset;	/* mouse double click time */ 
EXTERN int	p_more;		/* wait when screen full when listing */ 
EXTERN char_u  *p_para;		/* paragraphs */ 
EXTERN int	p_paste;	/* paste mode */ 
EXTERN char_u  *p_pm;		/* patchmode file suffix */ 
EXTERN char_u  *p_path;		/* path for "]f" and "^Wf" */ 
EXTERN int	p_remap;	/* remap */ 
EXTERN long	p_report;	/* minimum number of lines for report */ 
#ifdef WIN32 
EXTERN int	p_rs;		/* restore startup screen upon exit */ 
#endif 
#ifdef RIGHTLEFT 
EXTERN int	p_ari;		/* allow CTRL-_ command */ 
EXTERN int	p_ri;		/* reverse direction of insert */ 
#endif 
EXTERN int	p_ru;		/* show column/line number */ 
EXTERN long	p_sj;		/* scroll jump size */ 
EXTERN long	p_so;		/* scroll offset */ 
EXTERN char_u  *p_sections;	/* sections */ 
EXTERN int	p_secure;	/* do .exrc and .vimrc in secure mode */ 
EXTERN char_u  *p_sel;		/* 'selection' */ 
EXTERN char_u  *p_slm;		/* 'selectmode' */ 
EXTERN char_u  *p_sessopt;	/* sessionoptions */ 
EXTERN char_u  *p_sh;		/* name of shell to use */ 
EXTERN char_u  *p_shcf;		/* flag to shell to execute one command */ 
EXTERN char_u  *p_sp;		/* string for output of make */ 
EXTERN char_u  *p_shq;		/* quote character(s) for shell */ 
EXTERN char_u  *p_sxq;		/* quote around redirection for shell */ 
EXTERN char_u  *p_srr;		/* string for output of filter */ 
EXTERN long	p_st;		/* type of shell */ 
EXTERN int	p_sr;		/* shift round off (for < and >) */ 
EXTERN char_u  *p_shm;		/* When to use short message */ 
EXTERN char_u  *p_sbr;		/* string for break of line */ 
EXTERN int	p_sc;		/* show command in status line */ 
EXTERN int	p_sft;		/* showfulltag */ 
EXTERN int	p_sm;		/* showmatch */ 
EXTERN int	p_smd;		/* show mode */ 
EXTERN long	p_ss;		/* sideways scrolling offset */ 
EXTERN int	p_scs;		/* 'smartcase' */ 
EXTERN int	p_sta;		/* smart-tab for expand-tab */ 
EXTERN int	p_sb;		/* split window backwards */ 
EXTERN int	p_sol;		/* Move cursor to start-of-line? */ 
EXTERN char_u  *p_su;		/* suffixes for wildcard expansion */ 
EXTERN char_u  *p_sws;		/* swap file syncing */ 
EXTERN int	p_tbs;		/* tag binary search */ 
EXTERN long	p_tl;		/* used tag length */ 
EXTERN int	p_tr;		/* tag file name is relative */ 
EXTERN char_u  *p_tags;		/* tags search path */ 
EXTERN int	p_terse;	/* terse messages */ 
EXTERN int	p_ta;		/* auto textmode detection */ 
EXTERN int	p_to;		/* tilde is an operator */ 
EXTERN int	p_timeout;	/* mappings entered within one second */ 
EXTERN long	p_tm;		/* timeoutlen (msec) */ 
EXTERN int	p_title;	/* set window title if possible */ 
EXTERN long	p_titlelen;	/* length of window title in % of Columns */ 
EXTERN char_u  *p_titlestring;	/* window title string */ 
EXTERN int	p_ttimeout;	/* key codes entered within one second */ 
EXTERN long	p_ttm;		/* key code timeoutlen (msec) */ 
EXTERN int	p_tbi;		/* 'ttybuiltin' use builtin termcap first */ 
EXTERN int	p_tf;		/* terminal fast I/O */ 
EXTERN long	p_ttyscroll;	/* maximum nr of screen lines for a scroll */ 
EXTERN char_u  *p_ttym;		/* 'ttymouse', type of mouse */ 
EXTERN long	p_ul;		/* number of Undo Levels */ 
EXTERN long	p_uc;		/* update count for swap file */ 
EXTERN long	p_ut;		/* update time for swap file */ 
#ifdef VIMINFO 
EXTERN char_u  *p_viminfo;	/* Parameters for using ~/.viminfo file */ 
#endif 
EXTERN int	p_vb;		/* visual bell only (no beep) */ 
EXTERN long	p_verbose;	/* verbosity, -V command line argument */ 
EXTERN int	p_warn;		/* warn for changes at shell command */ 
#if defined(USE_GUI_WIN32) || defined(USE_GUI_MOTIF) || defined(LINT) 
EXTERN char_u	*p_wak;		/* 'winaltkeys' */ 
#endif 
#ifdef WILDIGNORE 
EXTERN char_u  *p_wig;		/* 'wildignore' */ 
#endif 
EXTERN int	p_wiv;		/* inversion of text is weird */ 
EXTERN char_u  *p_ww;		/* which keys wrap to next/prev line */ 
EXTERN long	p_wc;		/* character for wildcard exapansion */ 
EXTERN char_u  *p_wim;		/* 'wildmode' */ 
EXTERN long	p_wh;		/* desired window height */ 
EXTERN long	p_wmh;		/* minimal window height */ 
EXTERN int	p_ws;		/* wrap scan */ 
EXTERN int	p_wa;		/* write any */ 
EXTERN int	p_wb;		/* write backup files */ 
EXTERN long	p_wd;		/* write delay for screen output (for tests) */