option.h
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:16k
源码类别:

编辑器/阅读器

开发平台:

DOS

  1. /* vi:set ts=8 sts=4 sw=4:
  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.  * option.h: definition of global variables for settable options
  10.  *
  11.  * EXTERN is only defined in main.c (and vim.h)
  12.  */
  13. #ifndef EXTERN
  14. # define EXTERN extern
  15. # define INIT(x)
  16. #else
  17. # ifndef INIT
  18. #  define INIT(x) x
  19. # endif
  20. #endif
  21. /* default values for p_efm 'errorformat' */
  22. #ifdef AMIGA
  23. /* don't use [^0-9] here, Manx C can't handle it */
  24. # 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"
  25. #else
  26. # if defined MSDOS  || defined WIN32
  27. #  define EFM_DFLT "%f(%l) : %t%*[^0-9]%n: %m,%*[^"]"%f"%*[^0-9]%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%m"
  28. # else
  29. #  if defined(__EMX__) /* put most common here (i.e. gcc format) at front */
  30. #   define EFM_DFLT "%f:%l:%m,%*[^"]"%f"%*[^0-9]%l: %m,"%f"%*[^0-9]%l: %m,%f(%l:%c) : %m"
  31. #  else
  32. #   if defined(__QNX__)
  33. #    define EFM_DFLT "%f(%l):%*[^WE]%t%*[^0123456789]%n:%m"
  34. #   else /* Unix, probably */
  35. #    define EFM_DFLT "%*[^"]"%f"%*[^0-9]%l: %m,"%f"%*[^0-9]%l: %m,%f:%l:%m,"%f"\, line %l%*[^0-9]%c%*[^ ] %m"
  36. #   endif
  37. #  endif
  38. # endif
  39. #endif
  40. #define GEFM_DFLT "%f:%l%m,%f  %l%m"
  41. /* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */
  42. #define FF_DOS "dos"
  43. #define FF_MAC "mac"
  44. #define FF_UNIX "unix"
  45. #ifdef USE_CRNL
  46. # define FF_DFLT "dos"
  47. # define FFS_DFLT "dos,unix"
  48. # define FFS_VI "dos,unix" /* also autodetect in compatible mode */
  49. # define TA_DFLT TRUE
  50. #else
  51. # ifdef USE_CR
  52. #  define FF_DFLT "mac"
  53. #  define FFS_DFLT "mac,unix,dos"
  54. # else
  55. #  define FF_DFLT "unix"
  56. #  define FFS_DFLT "unix,dos"
  57. # endif
  58. # define FFS_VI ""
  59. # define TA_DFLT FALSE
  60. #endif
  61. #ifdef MULTI_BYTE
  62. #define FE_ANSI "ansi"
  63. #define FE_UNICODE "unicode"
  64. #define FE_DBJPN "japan"
  65. #define FE_DBKOR "korea"
  66. #define FE_DBCHT "taiwan"
  67. #define FE_DBCHS "prc"
  68. #define FE_HEBREW "hebrew"
  69. #define FE_FARSI "farsi"
  70. /* default value for 'fileencoding' */
  71. #define FE_DFLT FE_ANSI
  72. #endif
  73. /* end-of-line style */
  74. #define EOL_UNKNOWN -1 /* not defined yet */
  75. #define EOL_UNIX 0 /* NL */
  76. #define EOL_DOS 1 /* CR NL */
  77. #define EOL_MAC 2 /* CR */
  78. /* Formatting options for p_fo 'formatoptions' */
  79. #define FO_WRAP 't'
  80. #define FO_WRAP_COMS 'c'
  81. #define FO_RET_COMS 'r'
  82. #define FO_OPEN_COMS 'o'
  83. #define FO_Q_COMS 'q'
  84. #define FO_Q_SECOND '2'
  85. #define FO_INS_VI 'v'
  86. #define FO_INS_LONG 'l'
  87. #define FO_INS_BLANK 'b'
  88. #define FO_DFLT_VI "vt"
  89. #define FO_DFLT "tcq"
  90. #define FO_ALL "tcroq2vlb," /* for do_set() */
  91. /* characters for the p_cpo option: */
  92. #define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
  93. #define CPO_ALTWRITE 'A' /* ":write" sets alternate file name */
  94. #define CPO_BAR 'b' /* "|" ends a mapping */
  95. #define CPO_BSLASH 'B' /* backslash in mapping is not special */
  96. #define CPO_SEARCH 'c'
  97. #define CPO_DOTTAG 'd' /* "./tags" in 'tags' is in current dir */
  98. #define CPO_EXECBUF 'e'
  99. #define CPO_EMPTYREGION 'E' /* operating on empty region is an error */
  100. #define CPO_FNAMER 'f' /* set file name for ":r file" */
  101. #define CPO_FNAMEW 'F' /* set file name for ":w file" */
  102. #define CPO_JOINSP 'j' /* only use two spaces for join after '.' */
  103. #define CPO_KEYCODE 'k' /* don't recognize raw key code in mappings */
  104. #define CPO_LITERAL 'l' /* take char after backslash in [] literal */
  105. #define CPO_LISTWM 'L' /* 'list' changes wrapmargin */
  106. #define CPO_SHOWMATCH 'm'
  107. #define CPO_LINEOFF 'o'
  108. #define CPO_REDO 'r'
  109. #define CPO_BUFOPT 's'
  110. #define CPO_BUFOPTGLOB 'S'
  111. #define CPO_TAGPAT 't'
  112. #define CPO_UNDO 'u' /* "u" undoes itself */
  113. #define CPO_CW 'w' /* "cw" only changes one blank */
  114. #define CPO_FWRITE 'W' /* "w!" doesn't overwrite readonly files */
  115. #define CPO_ESC 'x'
  116. #define CPO_YANK 'y'
  117. #define CPO_DOLLAR '$'
  118. #define CPO_FILTER '!'
  119. #define CPO_MATCH '%'
  120. #define CPO_STAR '*' /* ":*" means ":@" */
  121. #define CPO_SPECI '<' /* don't recognize <> in mappings */
  122. #define CPO_DEFAULT "aABceFs"
  123. #define CPO_ALL "aAbBcdeEfFjklLmorsStuwWxy$!%*<"
  124. /* characters for p_ww option: */
  125. #define WW_ALL "bshl<>[],"
  126. /* characters for p_mouse option: */
  127. #define MOUSE_NORMAL 'n' /* use mouse in Normal mode */
  128. #define MOUSE_VISUAL 'v' /* use mouse in Visual/Select mode */
  129. #define MOUSE_INSERT 'i' /* use mouse in Insert mode */
  130. #define MOUSE_COMMAND 'c' /* use mouse in Command-line mode */
  131. #define MOUSE_HELP 'h' /* use mouse in help buffers */
  132. #define MOUSE_RETURN 'r' /* use mouse for hit-return message */
  133. #define MOUSE_A "nvich" /* used for 'a' flag */
  134. #define MOUSE_ALL "anvichr" /* all possible characters */
  135. /* characters for p_shm option: */
  136. #define SHM_RO 'r' /* readonly */
  137. #define SHM_MOD 'm' /* modified */
  138. #define SHM_FILE 'f' /* (file 1 of 2) */
  139. #define SHM_LAST 'i' /* last line incomplete */
  140. #define SHM_TEXT 'x' /* tx instead of textmode */
  141. #define SHM_LINES 'l' /* "L" instead of "lines" */
  142. #define SHM_NEW 'n' /* "[New]" instead of "[New file]" */
  143. #define SHM_WRI 'w' /* "[w]" instead of "written" */
  144. #define SHM_A "rmfixlnw" /* represented by 'a' flag */
  145. #define SHM_WRITE 'W' /* don't use "written" at all */
  146. #define SHM_TRUNC 't' /* trunctate message */
  147. #define SHM_OVER 'o' /* overwrite file messages */
  148. #define SHM_OVERALL 'O' /* overwrite more messages */
  149. #define SHM_SEARCH 's' /* no search hit bottom messages */
  150. #define SHM_ATTENTION 'A' /* no ATTENTION messages */
  151. #define SHM_INTRO 'I' /* intro messages */
  152. #define SHM_ALL "rmfixlnwaWtoOsAI" /* all possible flags for 'shm' */
  153. /* characters for p_guioptions: */
  154. #define GO_ASEL 'a' /* autoselect */
  155. #define GO_BOT 'b' /* use bottom scrollbar */
  156. #define GO_FORG 'f' /* start GUI in foreground */
  157. #define GO_GREY 'g' /* use grey menu items */
  158. #define GO_ICON 'i' /* use Vim icon */
  159. #define GO_LEFT 'l' /* use left scrollbar */
  160. #define GO_MENUS 'm' /* use menu bar */
  161. #define GO_POINTER 'p' /* pointer enter/leave callbacks */
  162. #define GO_RIGHT 'r' /* use right scrollbar */
  163. #define GO_TEAROFF 't' /* add tear-off menu items */
  164. #define GO_TOOLBAR 'T' /* add toolbar */
  165. #define GO_ALL "abfgilmprtT" /* all possible flags for 'go' */
  166. /* flags for 'comments' option */
  167. #define COM_NEST 'n' /* comments strings nest */
  168. #define COM_BLANK 'b' /* needs blank after string */
  169. #define COM_START 's' /* start of comment */
  170. #define COM_MIDDLE 'm' /* middle of comment */
  171. #define COM_END 'e' /* end of comment */
  172. #define COM_FIRST 'f' /* first line comment only */
  173. #define COM_LEFT 'l' /* left adjusted */
  174. #define COM_RIGHT 'r' /* right adjusted */
  175. #define COM_ALL "nbsmeflr" /* all flags for 'comments' option */
  176. #define COM_MAX_LEN 50 /* maximum length of a part */
  177. /* flags used for parsed 'wildmode' */
  178. #define WIM_FULL 1
  179. #define WIM_LONGEST 2
  180. #define WIM_LIST 4
  181. /*
  182.  * The following are actual variabables for the options
  183.  */
  184. #ifdef RIGHTLEFT
  185. EXTERN long p_aleph; /* Hebrew 'Aleph' encoding */
  186. #endif
  187. EXTERN int p_aw; /* auto-write */
  188. EXTERN long p_bs; /* backspace over newlines in insert mode */
  189. EXTERN char_u  *p_bg; /* window background color: light or dark */
  190. EXTERN int p_bk; /* make backups when writing out files */
  191. EXTERN char_u  *p_bdir; /* list of directory names for backup files */
  192. EXTERN char_u  *p_bex; /* extension for backup file */
  193. EXTERN char_u  *p_bsdir; /* 'browsedir' */
  194. #ifdef MSDOS
  195. EXTERN int p_biosk; /* Use bioskey() instead of kbhit() */
  196. #endif
  197. EXTERN char_u  *p_breakat; /* characters that can cause a line break */
  198. EXTERN long p_ch; /* command line height */
  199. #if defined(GUI_DIALOG) || defined(CON_DIALOG)
  200. EXTERN int p_confirm; /* 'confirm' */
  201. #endif
  202. EXTERN int p_cp; /* vi-compatible */
  203. EXTERN char_u  *p_cpo; /* vi-compatible option flags */
  204. #ifdef USE_CSCOPE
  205. EXTERN char_u  *p_csprg; /* name of cscope program */
  206. EXTERN int p_cst; /* always use :cstag instead of :tag command */
  207. EXTERN long p_csto; /* cscope/tags search order */
  208. EXTERN int p_csverbose; /* cscope verbose messages flag */
  209. #endif
  210. EXTERN char_u  *p_def; /* Pattern for recognising definitions */
  211. EXTERN char_u  *p_dict; /* Dictionaries for ^P/^N */
  212. #ifdef DIGRAPHS
  213. EXTERN int p_dg; /* enable digraphs */
  214. #endif
  215. EXTERN char_u *p_dir; /* list of directories for swap file */
  216. EXTERN int p_ed; /* :s is ed compatible */
  217. EXTERN int p_ea; /* make windows equal height */
  218. EXTERN char_u *p_ep; /* program name for '=' command */
  219. EXTERN int p_eb; /* ring bell for errors */
  220. #ifdef QUICKFIX
  221. EXTERN char_u  *p_ef; /* name of errorfile */
  222. EXTERN char_u  *p_efm; /* error format */
  223. EXTERN char_u  *p_gefm; /* error format for grep -n */
  224. #endif
  225. #ifdef AUTOCMD
  226. EXTERN char_u  *p_ei; /* events ignored for autocommands */
  227. #endif
  228. EXTERN int p_ek; /* function keys with ESC in insert mode */
  229. EXTERN int p_exrc; /* read .exrc in current dir */
  230. EXTERN char_u  *p_ffs; /* acceptable file formats */
  231. EXTERN char_u  *p_fp; /* name of format program */
  232. EXTERN int p_gd; /* /g is default for :s */
  233. #ifdef USE_GUI
  234. EXTERN char_u  *p_guifont; /* GUI font list */
  235. EXTERN int p_guipty; /* use pseudo pty for external commands */
  236. #endif
  237. #ifdef CURSOR_SHAPE
  238. EXTERN char_u  *p_guicursor; /* shape settings for cursor */
  239. #endif
  240. #if defined(USE_GUI) || defined(USE_CLIPBOARD)
  241. EXTERN char_u  *p_guioptions; /* Which GUI components? */
  242. #endif
  243. EXTERN char_u  *p_hf; /* name of help file */
  244. EXTERN long p_hh; /* help window height */
  245. EXTERN int p_hid; /* buffers can be hidden */
  246. EXTERN char_u  *p_hl; /* which highlight mode to use */
  247. EXTERN int p_hls; /* highlight matches with last search pattern */
  248. EXTERN long p_hi; /* command line history size */
  249. #ifdef RIGHTLEFT
  250. EXTERN int p_hkmap; /* Hebrew keyboard map */
  251. EXTERN int p_hkmapp; /* idem, phonetic */
  252. # ifdef FKMAP
  253. EXTERN int p_fkmap; /* Farsi keyboard map */
  254. EXTERN int p_altkeymap; /* alternative keyboard map Hebrew/Farsi */
  255. # endif
  256. #endif
  257. EXTERN int p_icon; /* put file name in icon if possible */
  258. EXTERN char_u  *p_iconstring; /* icon string */
  259. EXTERN int p_ic; /* ignore case in searches */
  260. EXTERN int p_is; /* incremental search */
  261. EXTERN int p_im; /* start editing in input mode */
  262. EXTERN char_u  *p_inc; /* Pattern for including other files */
  263. EXTERN char_u  *p_isf; /* characters in a file name */
  264. EXTERN char_u  *p_isi; /* characters in an identifier */
  265. EXTERN char_u  *p_isp; /* characters that are printable */
  266. EXTERN int p_js; /* use two spaces after '.' with Join */
  267. EXTERN char_u  *p_kp; /* keyword program */
  268. EXTERN char_u  *p_km; /* 'keymodel' */
  269. #ifdef HAVE_LANGMAP
  270. EXTERN char_u  *p_langmap; /* mapping for some language */
  271. #endif
  272. EXTERN long p_ls; /* last window has status line */
  273. EXTERN char_u  *p_lcs; /* characters for list mode */
  274. EXTERN int p_lz; /* lazy redraw, only when key typed */
  275. EXTERN int p_magic; /* use some characters for reg exp */
  276. #ifdef QUICKFIX
  277. EXTERN char_u  *p_mef; /* name of make errorfile */
  278. EXTERN char_u  *p_mp; /* program for :make command */
  279. EXTERN char_u  *p_gp; /* program for :grep command */
  280. #endif
  281. EXTERN long p_mat; /* time to show the match of a paren */
  282. EXTERN long p_mfd; /* 'maxfuncdepth' */
  283. EXTERN long p_mmd; /* 'maxmapdepth' */
  284. EXTERN long p_mm; /* maximal amount of memory for buffer */
  285. EXTERN long p_mmt; /* maximal amount of memory for Vim */
  286. EXTERN long p_mls; /* number of mode lines */
  287. EXTERN char_u  *p_mouse; /* flags for use of mouse */
  288. #ifdef USE_GUI
  289. EXTERN int p_mousef; /* 'mousefocus' */
  290. EXTERN int p_mh; /* hide pointer enable */
  291. #endif
  292. EXTERN char_u  *p_mousem; /* 'mousemodel' */
  293. EXTERN long p_mouset; /* mouse double click time */
  294. EXTERN int p_more; /* wait when screen full when listing */
  295. EXTERN char_u  *p_para; /* paragraphs */
  296. EXTERN int p_paste; /* paste mode */
  297. EXTERN char_u  *p_pm; /* patchmode file suffix */
  298. EXTERN char_u  *p_path; /* path for "]f" and "^Wf" */
  299. EXTERN int p_remap; /* remap */
  300. EXTERN long p_report; /* minimum number of lines for report */
  301. #ifdef WIN32
  302. EXTERN int p_rs; /* restore startup screen upon exit */
  303. #endif
  304. #ifdef RIGHTLEFT
  305. EXTERN int p_ari; /* allow CTRL-_ command */
  306. EXTERN int p_ri; /* reverse direction of insert */
  307. #endif
  308. EXTERN int p_ru; /* show column/line number */
  309. EXTERN long p_sj; /* scroll jump size */
  310. EXTERN long p_so; /* scroll offset */
  311. EXTERN char_u  *p_sections; /* sections */
  312. EXTERN int p_secure; /* do .exrc and .vimrc in secure mode */
  313. EXTERN char_u  *p_sel; /* 'selection' */
  314. EXTERN char_u  *p_slm; /* 'selectmode' */
  315. EXTERN char_u  *p_sessopt; /* sessionoptions */
  316. EXTERN char_u  *p_sh; /* name of shell to use */
  317. EXTERN char_u  *p_shcf; /* flag to shell to execute one command */
  318. EXTERN char_u  *p_sp; /* string for output of make */
  319. EXTERN char_u  *p_shq; /* quote character(s) for shell */
  320. EXTERN char_u  *p_sxq; /* quote around redirection for shell */
  321. EXTERN char_u  *p_srr; /* string for output of filter */
  322. EXTERN long p_st; /* type of shell */
  323. EXTERN int p_sr; /* shift round off (for < and >) */
  324. EXTERN char_u  *p_shm; /* When to use short message */
  325. EXTERN char_u  *p_sbr; /* string for break of line */
  326. EXTERN int p_sc; /* show command in status line */
  327. EXTERN int p_sft; /* showfulltag */
  328. EXTERN int p_sm; /* showmatch */
  329. EXTERN int p_smd; /* show mode */
  330. EXTERN long p_ss; /* sideways scrolling offset */
  331. EXTERN int p_scs; /* 'smartcase' */
  332. EXTERN int p_sta; /* smart-tab for expand-tab */
  333. EXTERN int p_sb; /* split window backwards */
  334. EXTERN int p_sol; /* Move cursor to start-of-line? */
  335. EXTERN char_u  *p_su; /* suffixes for wildcard expansion */
  336. EXTERN char_u  *p_sws; /* swap file syncing */
  337. EXTERN int p_tbs; /* tag binary search */
  338. EXTERN long p_tl; /* used tag length */
  339. EXTERN int p_tr; /* tag file name is relative */
  340. EXTERN char_u  *p_tags; /* tags search path */
  341. EXTERN int p_terse; /* terse messages */
  342. EXTERN int p_ta; /* auto textmode detection */
  343. EXTERN int p_to; /* tilde is an operator */
  344. EXTERN int p_timeout; /* mappings entered within one second */
  345. EXTERN long p_tm; /* timeoutlen (msec) */
  346. EXTERN int p_title; /* set window title if possible */
  347. EXTERN long p_titlelen; /* length of window title in % of Columns */
  348. EXTERN char_u  *p_titlestring; /* window title string */
  349. EXTERN int p_ttimeout; /* key codes entered within one second */
  350. EXTERN long p_ttm; /* key code timeoutlen (msec) */
  351. EXTERN int p_tbi; /* 'ttybuiltin' use builtin termcap first */
  352. EXTERN int p_tf; /* terminal fast I/O */
  353. EXTERN long p_ttyscroll; /* maximum nr of screen lines for a scroll */
  354. EXTERN char_u  *p_ttym; /* 'ttymouse', type of mouse */
  355. EXTERN long p_ul; /* number of Undo Levels */
  356. EXTERN long p_uc; /* update count for swap file */
  357. EXTERN long p_ut; /* update time for swap file */
  358. #ifdef VIMINFO
  359. EXTERN char_u  *p_viminfo; /* Parameters for using ~/.viminfo file */
  360. #endif
  361. EXTERN int p_vb; /* visual bell only (no beep) */
  362. EXTERN long p_verbose; /* verbosity, -V command line argument */
  363. EXTERN int p_warn; /* warn for changes at shell command */
  364. #if defined(USE_GUI_WIN32) || defined(USE_GUI_MOTIF) || defined(LINT)
  365. EXTERN char_u *p_wak; /* 'winaltkeys' */
  366. #endif
  367. #ifdef WILDIGNORE
  368. EXTERN char_u  *p_wig; /* 'wildignore' */
  369. #endif
  370. EXTERN int p_wiv; /* inversion of text is weird */
  371. EXTERN char_u  *p_ww; /* which keys wrap to next/prev line */
  372. EXTERN long p_wc; /* character for wildcard exapansion */
  373. EXTERN char_u  *p_wim; /* 'wildmode' */
  374. EXTERN long p_wh; /* desired window height */
  375. EXTERN long p_wmh; /* minimal window height */
  376. EXTERN int p_ws; /* wrap scan */
  377. EXTERN int p_wa; /* write any */
  378. EXTERN int p_wb; /* write backup files */
  379. EXTERN long p_wd; /* write delay for screen output (for tests) */