www.pudn.com > vim53src.zip > feature.h
/* 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 * "". */ #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,,*.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 */