feature.h
资源名称:vim53src.zip [点击查看]
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:13k
源码类别:
编辑器/阅读器
开发平台:
DOS
- /* vi:set ts=8 sts=0 sw=8:
- *
- * 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.
- */
- /*
- * feature.h: Defines for optional code and preferences
- *
- * Edit this file to include/exclude parts of Vim, before compiling.
- * The only other file that may be edited is Makefile, it contains machine
- * specific options.
- *
- * To include specific options, change the "#if*" and "#endif" into comments,
- * or uncomment the "#define".
- * To exclude specific options, change the "#define" into a comment.
- */
- /*
- * When adding a new feature:
- * - Add a #define below.
- * - Add a message in do_version().
- * - Add a string to f_has().
- * - Add a feature to ":help feature-list" in doc/eval.txt.
- * - Add feature to ":help +feature-list" in doc/various.txt.
- * - Add comment for the documentation of commands that use the feature.
- */
- /*
- * Basic choices:
- * ==============
- *
- * MIN_FEAT minimal features enabled, as basic as possible (DOS16)
- * MAX_FEAT maximal features enabled, as rich as possible.
- * default A selection of features enabled.
- *
- * These executables are made available with MAX_FEAT defined, because they
- * are supposed to have enough RAM: Win32 (console & GUI), dos32 and OS/2.
- * The dos16 version has very little RAM available, use MIN_FEAT.
- */
- #if !defined(MIN_FEAT) && !defined(MAX_FEAT)
- /* #define MIN_FEAT */
- /* #define MAX_FEAT */
- # if defined(WIN32) || defined(DJGPP) || defined(OS2)
- # define MAX_FEAT
- # else
- # ifdef MSDOS
- # define MIN_FEAT
- # endif
- # endif
- #endif
- /*
- * Optional code (see ":help +feature-list")
- * =============
- */
- /*
- * +digraphs When DIGRAPHS defined: Include digraph support.
- * In insert mode and on the command line you will be
- * able to use digraphs. The CTRL-K command will work.
- */
- #ifndef MIN_FEAT
- # define DIGRAPHS
- #endif
- /*
- * +langmap When HAVE_LANGMAP defined: Include support for
- * 'langmap' option. Only useful when you put your
- * keyboard in a special language mode, e.g. for typing
- * greek.
- */
- #ifdef MAX_FEAT
- # define HAVE_LANGMAP
- #endif
- /*
- * +insert_expand When INSERT_EXPAND defined: Support for
- * CTRL-N/CTRL-P/CTRL-X in insert mode. Takes about
- * 4Kbyte of code.
- */
- #ifndef MIN_FEAT
- # define INSERT_EXPAND
- #endif
- /*
- * +textobjects When TEXT_OBJECTS defined: Support for text objects:
- * "vaw", "das", etc.
- */
- #ifndef MIN_FEAT
- # define TEXT_OBJECTS
- #endif
- /*
- * +showcmd When SHOWCMD defined: Support for 'showcmd' option.
- */
- #ifndef MIN_FEAT
- # define SHOWCMD
- #endif
- /*
- * +ex_extra When EX_EXTRA defined: Support for ":retab", ":right",
- * ":left", ":center", ":normal".
- */
- #ifndef MIN_FEAT
- # define EX_EXTRA
- #endif
- /*
- * +extra_search When EXTRA_SEARCH defined: Support for 'hlsearch' and
- * 'incsearch'.
- */
- #ifndef MIN_FEAT
- # define EXTRA_SEARCH
- #endif
- /*
- * +quickfix When QUICKFIX defined: Support for quickfix commands.
- */
- #ifndef MIN_FEAT
- # define QUICKFIX
- #endif
- /*
- * +file_in_path When FILE_IN_PATH defined: Support for "gf" and
- * "<cfile>".
- */
- #ifndef MIN_FEAT
- # define FILE_IN_PATH
- #endif
- /*
- * +find_in_path When FIND_IN_PATH defined: Support for "[I" ":isearch"
- * "^W^I", ":checkpath", etc.
- */
- #ifndef MIN_FEAT
- # ifdef FILE_IN_PATH /* FILE_IN_PATH is required */
- # define FIND_IN_PATH
- # endif
- #endif
- /*
- * +rightleft When RIGHTLEFT defined: Right-to-left typing and
- * Hebrew support. Takes some code.
- */
- #ifdef MAX_FEAT
- # define RIGHTLEFT
- #endif
- /*
- * +farsi When FKMAP defined: Farsi (Persian language) Keymap
- * support. Takes some code. Needs RIGHTLEFT.
- */
- #ifdef MAX_FEAT
- # ifndef RIGHTLEFT
- # define RIGHTLEFT
- # endif
- # define FKMAP
- #endif
- /*
- * +emacs_tags When EMACS_TAGS defined: Include support for emacs
- * style TAGS file. Takes some code.
- */
- #ifdef MAX_FEAT
- # define EMACS_TAGS
- #endif
- /*
- * +tag_binary When BINARY_TAGS defined: Use a binary search instead
- * of a linear search when search a tags file.
- */
- #ifndef MIN_FEAT
- # define BINARY_TAGS
- #endif
- /*
- * +tag_old_static When OLD_STATIC_TAGS defined: Include support for old
- * style static tags: "file:tag file ..". Slows down
- * tag searching a bit.
- */
- #ifndef MIN_FEAT
- # define OLD_STATIC_TAGS
- #endif
- /*
- * +tag_any_white When TAG_ANY_WHITE defined: Allow any white space to
- * separate the fields in a tags file. When not
- * defined, only a TAB is allowed.
- */
- /* #define TAG_ANY_WHITE */
- /*
- * +cscope Unix only. When USE_CSCOPE defined, enable interface
- * to support cscope.
- */
- #if defined(UNIX) && defined(MAX_FEAT) && !defined(USE_CSCOPE)
- # define USE_CSCOPE
- #endif
- /*
- * +eval When WANT_EVAL defined: Include built-in script
- * language and expression evaluation, ":let", ":if",
- * etc.
- */
- #ifndef MIN_FEAT
- # define WANT_EVAL
- #endif
- /*
- * +user_commands When USER_COMMANDS defined: Allow the user to define
- * his own commands.
- */
- #ifndef MIN_FEAT
- # define USER_COMMANDS
- #endif
- /*
- * +modify_fname When WANT_MODIFY_FNAME defined: Include modifiers for
- * file name. E.g., "%:p:h".
- */
- #ifndef MIN_FEAT
- # define WANT_MODIFY_FNAME
- #endif
- /*
- * +autocmd When defined: Include support for ":autocmd"
- */
- #ifndef MIN_FEAT
- # define AUTOCMD
- #endif
- /*
- * +wildignore When defined: Include support for 'wildignore'
- */
- #ifndef MIN_FEAT
- # define WILDIGNORE
- #endif
- /*
- * +filetype When WANT_FILETYPE defined: Include support for
- * filetype checking in autocommands. Eg:
- * *.html,*.htm,<html>,*.shtml
- * Only on systems that support filetypes (RISC OS).
- */
- #if 0
- # define WANT_FILETYPE
- # define FT_DFLT "Text"
- #endif
- /*
- * +viminfo When VIMINFO defined: Include support for
- * reading/writing the viminfo file. Takes about 8Kbyte
- * of code.
- * VIMINFO_FILE Location of user .viminfo file (should start with $).
- * VIMINFO_FILE2 Location of alternate user .viminfo file.
- */
- #ifndef MIN_FEAT
- # define VIMINFO
- /* #define VIMINFO_FILE "$HOME/foo/.viminfo" */
- /* #define VIMINFO_FILE2 "~/bar/.viminfo" */
- #endif
- /*
- * +syntax When SYNTAX_HL defined: Include support for syntax
- * highlighting. When using this, it's a good idea to
- * have AUTOCMD too.
- */
- #if !defined(MIN_FEAT) || defined(PROTO)
- # define SYNTAX_HL
- #endif
- /*
- * +sniff When USE_SNIFF defined: Include support for Sniff
- * interface. This needs to be defined in the Makefile.
- */
- /*
- * +builtin_terms Choose one out of the following four:
- *
- * NO_BUILTIN_TCAPS When defined: Do not include any builtin termcap
- * entries (used only with HAVE_TGETENT defined).
- *
- * (nothing) Machine specific termcap entries will be included.
- *
- * SOME_BUILTIN_TCAPS When defined: Include most useful builtin termcap
- * entries (used only with NO_BUILTIN_TCAPS not defined).
- * This is the default.
- *
- * ALL_BUILTIN_TCAPS When defined: Include all builtin termcap entries
- * (used only with NO_BUILTIN_TCAPS not defined).
- */
- #ifdef HAVE_TGETENT
- /* #define NO_BUILTIN_TCAPS */
- #endif
- #ifndef NO_BUILTIN_TCAPS
- # ifdef MAX_FEAT
- # define ALL_BUILTIN_TCAPS
- # else
- # define SOME_BUILTIN_TCAPS /* default */
- # endif
- #endif
- /*
- * +lispindent When LISPINDENT defined: Include lisp indenting (From
- * Eric Fischer). Doesn't completely work like Vi (yet).
- * +cindent When CINDENT defined: Include C code indenting (From
- * Eric Fischer).
- * +smartindent When SMARTINDENT defined: Do smart C code indenting
- * when the 'si' option is set. It's not as good as
- * CINDENT, only included to keep the old code.
- *
- * These two need to be defined when making prototypes.
- */
- #if !defined(MIN_FEAT) || defined(PROTO)
- # define LISPINDENT
- #endif
- #if !defined(MIN_FEAT) || defined(PROTO)
- # define CINDENT
- #endif
- #ifndef MIN_FEAT
- # define SMARTINDENT
- #endif
- /*
- * +browse Enable :browse command.
- */
- #if !defined(MIN_FEAT) && (defined(USE_GUI_WIN32) || defined(USE_GUI_MOTIF) || defined(USE_GUI_ATHENA))
- # define USE_BROWSE
- #endif
- /*
- * +multi_byte Enable generic multi-byte character handling.
- * Not tested much!
- */
- #ifdef MAX_FEAT
- # define MULTI_BYTE
- #endif
- /*
- * +multi_byte_ime Win32 IME input method. Requires +multi_byte.
- * Only for far-east Windows, so IME can be used to input
- * chars. Not tested much!
- */
- #if defined(MULTI_BYTE) && defined(USE_GUI_WIN32)
- /* # define MULTI_BYTE_IME */
- # endif
- /*
- * BROWSE_CURRBUF When defined: Open file browser in the directory of
- * the current buffer, instead of the current directory.
- *
- * USE_GUI_WIN32_TOOLBAR Include a toolbar in the Win32 GUI.
- */
- #if defined(USE_GUI_WIN32) && !defined(MIN_FEAT)
- # define BROWSE_CURRBUF
- # define USE_GUI_WIN32_TOOLBAR
- #endif
- /*
- * When WINDOWS_ALT_KEYS defined, let Windows handle ALT
- * keys, they are not available to Vim. Allows
- * selectiong menu items.
- */
- /* #define WINDOWS_ALT_KEYS */
- /*
- * +dialog_gui When GUI_DIALOG defined, use GUI dialog.
- * +dialog_con When CON_DIALOG defined, may use Console dialog.
- * When none of these defined, no dialog support.
- */
- #ifndef MIN_FEAT
- # if defined(USE_GUI_WIN32)
- # define GUI_DIALOG
- # else
- # if defined(USE_GUI_ATHENA) || defined(USE_GUI_MOTIF)
- # define CON_DIALOG
- # define GUI_DIALOG
- # else
- # define CON_DIALOG
- # endif
- # endif
- #endif
- /*
- * Preferences:
- * ============
- */
- /*
- * +writebackup When WRITEBACKUP defined: 'writebackup' is default on:
- * Use a backup file while overwriting a file. But it's
- * deleted again when 'backup' is not set. Changing this
- * is strongly discouraged: You can loose all your
- * changes when the computer crashes while writing the
- * file.
- */
- #ifndef VMS /* doesn't work on VMS */
- # define WRITEBACKUP
- #endif
- /*
- * +xterm_save When SAVE_XTERM_SCREEN defined: The t_ti and t_te
- * entries for the builtin xterm will be set to save the
- * screen when starting Vim and restoring it when
- * exiting.
- */
- /* #define SAVE_XTERM_SCREEN */
- /*
- * DEBUG When defined: Output a lot of debugging garbage.
- */
- /* #define DEBUG */
- /*
- * VIMRC_FILE Name of the .vimrc file in current dir.
- */
- /* #define VIMRC_FILE ".vimrc" */
- /*
- * EXRC_FILE Name of the .exrc file in current dir.
- */
- /* #define EXRC_FILE ".exrc" */
- /*
- * GVIMRC_FILE Name of the .gvimrc file in current dir.
- */
- /* #define GVIMRC_FILE ".gvimrc" */
- /*
- * SESSION_FILE Name of the default ":mksession" file.
- */
- #define SESSION_FILE "Session.vim"
- /*
- * USR_VIMRC_FILE Name of the user .vimrc file.
- * USR_VIMRC_FILE2 Name of alternate user .vimrc file.
- */
- /* #define USR_VIMRC_FILE "~/foo/.vimrc" */
- /* #define USR_VIMRC_FILE2 "~/bar/.vimrc" */
- /*
- * USR_EXRC_FILE Name of the user .exrc file.
- * USR_EXRC_FILE2 Name of the alternate user .exrc file.
- */
- /* #define USR_EXRC_FILE "~/foo/.exrc" */
- /* #define USR_EXRC_FILE2 "~/bar/.exrc" */
- /*
- * USR_GVIMRC_FILE Name of the user .gvimrc file.
- * USR_GVIMRC_FILE2 Name of the alternate user .gvimrc file.
- */
- /* #define USR_GVIMRC_FILE "~/foo/.gvimrc" */
- /* #define USR_GVIMRC_FILE2 "~/bar/.gvimrc" */
- /*
- * SYS_VIMRC_FILE Name of the system-wide .vimrc file.
- */
- /* #define SYS_VIMRC_FILE "/etc/vimrc" */
- /*
- * SYS_GVIMRC_FILE Name of the system-wide .gvimrc file.
- */
- /* #define SYS_GVIMRC_FILE "/etc/gvimrc" */
- /*
- * VIM_HLP Name of the help file.
- */
- /* #define VIM_HLP "$VIM/doc/help.txt.gz" */
- /*
- * SYS_MENU_FILE Name of the default menu.vim file.
- */
- /* #define SYS_MENU_FILE "/foo/menu.vim" */
- /*
- * SYNTAX_FNAME Name of a syntax file, where %s is the syntax name.
- */
- /* #define SYNTAX_FNAME "/foo/%s.vim" */
- /*
- * Machine dependent:
- * ==================
- */
- /*
- * +fork Unix only. When USE_SYSTEM defined: Use system()
- * +system instead of fork/exec for starting a shell. Doesn't
- * work for the GUI!
- */
- /* #define USE_SYSTEM */
- /*
- * +X11 Unix only. When WANT_X11 defined: Include code for
- * xterm title saving. Only works if HAVE_X11 is also
- * defined.
- */
- #ifndef MIN_FEAT
- # define WANT_X11
- #endif
- /*
- * +mouse_xterm Unix only. When XTERM_MOUSE defined: Include code for
- * xterm mouse handling.
- * +mouse_netterm idem, NETTERM_MOUSE, for Netterm mouse handling.
- * +mouse_dec idem, DEC_MOUSE, for Dec mouse handling.
- * (none) MS-DOS mouse support.
- * +mouse Any mouse support (any of the above enabled).
- */
- #ifndef MIN_FEAT
- # define XTERM_MOUSE
- #endif
- #ifdef MAX_FEAT
- # define NETTERM_MOUSE
- #endif
- #ifdef MAX_FEAT
- # define DEC_MOUSE
- #endif
- #ifndef MIN_FEAT
- # define DOS_MOUSE
- #endif
- /*
- * +GUI_Athena To compile Vim with or without the GUI (gvim) you have
- * +GUI_BeOS to edit Makefile.
- * +GUI_Motif
- */
- /*
- * +ole Win32 OLE automation: Use if_ole_vc.mak.
- */
- /*
- * +perl Perl interface: edit the Makefile.
- */
- /*
- * +python Python interface: edit the Makefile.
- */
- /*
- * +terminfo (Automatically) defined in the Makefile.
- */
- /*
- * +tgetent (Automatically) defined in the Makefile.
- */
- /*
- * +ARP Amiga only. When defined: Do not use arp.library, DOS
- * 2.0 required.
- */
- /* #define NO_ARP */