📄 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
* "<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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -