home *** CD-ROM | disk | FTP | other *** search
- /* vi:set ts=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
-
- /* Formatting options for the p_fo option: */
- #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 filename */
- #define CPO_ALTWRITE 'A' /* ":write" sets alternate filename */
- #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_FNAMER 'f' /* set file name for ":r file" */
- #define CPO_FNAMEW 'F' /* set file name for ":w file" */
- #define CPO_KEYCODE 'k' /* don't recognize raw key code in mappings */
- #define CPO_LITERAL 'l' /* take char after backslash in [] literal */
- #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_CW 'w' /* "cw" only changes one blank */
- #define CPO_ESC 'x'
- #define CPO_DOLLAR '$'
- #define CPO_FILTER '!'
- #define CPO_MATCH '%'
- #define CPO_SPECI '<' /* don't recognize <> in mappings */
- #define CPO_DEFAULT "aABceFs"
- #define CPO_ALL "aAbBcdefFklmorsStwx$!%<"
-
- /* 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 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 "anvicrh" /* 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_SEARCH 's' /* no search hit bottom messages */
- #define SHM_ALL "rmfixlnwaWtos" /* all possible flags for 'shm' */
-
- /* characters for p_guioptions: */
- #define GO_ASEL 'a' /* GUI: autoselect */
- #define GO_BOT 'b' /* GUI: use bottom scrollbar */
- #define GO_FORG 'f' /* GUI: start GUI in foreground */
- #define GO_GREY 'g' /* GUI: use grey menu items */
- #define GO_LEFT 'l' /* GUI: use left scrollbar */
- #define GO_MENUS 'm' /* GUI: use menu bar */
- #define GO_RIGHT 'r' /* GUI: use right scrollbar */
- #define GO_ALL "abfglmr" /* 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 lenght of a part */
-
- /*
- * The following are actual variabables for the options
- */
-
- #ifdef RIGHTLEFT
- EXTERN int p_aleph; /* Hebrew 'Aleph' encoding */
- #endif
- EXTERN int p_aw; /* auto-write */
- EXTERN long p_bs; /* backspace over newlines in insert mode */
- 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 */
- #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 */
- EXTERN int p_cp; /* vi-compatible */
- EXTERN char_u *p_cpo; /* vi-compatible option flags */
- 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 /* DIGRAPHS */
- 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 */
- EXTERN char_u *p_ef; /* name of errorfile */
- EXTERN char_u *p_efm; /* error format */
- EXTERN int p_ek; /* function keys with ESC in insert mode */
- EXTERN int p_exrc; /* read .exrc in current dir */
- 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 char_u *p_guioptions; /* Which GUI components? */
- EXTERN int p_guipty; /* use pseudo pty for external commands */
- #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 long p_hi; /* command line history size */
- #ifdef RIGHTLEFT
- EXTERN int p_hkmap; /* Hebrew keyboard map */
- #endif
- EXTERN int p_icon; /* put file name in icon if possible */
- 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 */
- #ifdef HAVE_LANGMAP
- EXTERN char_u *p_langmap; /* mapping for some language */
- #endif
- EXTERN long p_ls; /* last window has status line */
- EXTERN int p_magic; /* use some characters for reg exp */
- EXTERN char_u *p_mp; /* program for :make command */
- EXTERN long p_mmd; /* maximal map depth */
- 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; /* enable mouse clicks (for xterm) */
- 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_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_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_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_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 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 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 number of screen lines for a scroll */
- 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 /* VIMINFO */
- EXTERN int p_vb; /* visual bell only (no beep) */
- EXTERN int p_warn; /* warn for changes at shell command */
- 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 long p_wh; /* desired 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 testing) */
-