1 /* vi:set ts=8 sts=4 sw=4 noet: 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 * feature.h: Defines for optional code and preferences 10 * 11 * Edit this file to include/exclude parts of Vim, before compiling. 12 * The only other file that may be edited is Makefile, it contains machine 13 * specific options. 14 * 15 * To include specific options, change the "#if*" and "#endif" into comments, 16 * or uncomment the "#define". 17 * To exclude specific options, change the "#define" into a comment. 18 */ 19 20 /* 21 * When adding a new feature: 22 * - Add a #define below. 23 * - Add a message in the table above ex_version(). 24 * - Add a string to f_has(). 25 * - Add a feature to ":help feature-list" in doc/eval.txt. 26 * - Add feature to ":help +feature-list" in doc/various.txt. 27 * - Add comment for the documentation of commands that use the feature. 28 */ 29 30 /* 31 * Basic choices: 32 * ============== 33 * 34 * +tiny almost no features enabled, not even multiple windows 35 * +small few features enabled, as basic as possible 36 * +normal A default selection of features enabled 37 * +big many features enabled, as rich as possible. 38 * +huge all possible features enabled. 39 * 40 * When +small is used, +tiny is also included. +normal implies +small, etc. 41 */ 42 43 /* 44 * Uncomment one of these to override the default. For unix use a configure 45 * argument, see Makefile. 46 */ 47 #if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \ 48 && !defined(FEAT_BIG) && !defined(FEAT_HUGE) 49 /* #define FEAT_TINY */ 50 /* #define FEAT_SMALL */ 51 /* #define FEAT_NORMAL */ 52 /* #define FEAT_BIG */ 53 /* #define FEAT_HUGE */ 54 #endif 55 56 /* 57 * For Unix, Mac and Win32 use +huge by default. These days CPUs are fast and 58 * Memory is cheap. 59 * Use +big for older systems: Other MS-Windows and VMS. 60 * Otherwise use +normal 61 */ 62 #if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \ 63 && !defined(FEAT_BIG) && !defined(FEAT_HUGE) 64 # if defined(UNIX) || defined(WIN3264) || defined(MACOS_X) 65 # define FEAT_HUGE 66 # else 67 # if defined(MSWIN) || defined(VMS) || defined(AMIGA) 68 # define FEAT_BIG 69 # else 70 # define FEAT_NORMAL 71 # endif 72 # endif 73 #endif 74 75 /* 76 * Each feature implies including the "smaller" ones. 77 */ 78 #ifdef FEAT_HUGE 79 # define FEAT_BIG 80 #endif 81 #ifdef FEAT_BIG 82 # define FEAT_NORMAL 83 #endif 84 #ifdef FEAT_NORMAL 85 # define FEAT_SMALL 86 #endif 87 #ifdef FEAT_SMALL 88 # define FEAT_TINY 89 #endif 90 91 /* 92 * Optional code (see ":help +feature-list") 93 * ============= 94 */ 95 96 /* 97 * These features used to be optional but are now always enabled. 98 * +windows Multiple windows. Without this there is no help 99 * window and no status lines. 100 * +vertsplit Vertically split windows. 101 */ 102 103 /* 104 * +cmdhist Command line history. 105 */ 106 #ifdef FEAT_SMALL 107 # define FEAT_CMDHIST 108 #endif 109 110 /* 111 * Message history is fixed at 200 message, 20 for the tiny version. 112 */ 113 #ifdef FEAT_SMALL 114 # define MAX_MSG_HIST_LEN 200 115 #else 116 # define MAX_MSG_HIST_LEN 20 117 #endif 118 119 /* 120 * +jumplist Jumplist, CTRL-O and CTRL-I commands. 121 */ 122 #ifdef FEAT_SMALL 123 # define FEAT_JUMPLIST 124 #endif 125 126 /* the cmdline-window requires FEAT_CMDHIST */ 127 #if defined(FEAT_CMDHIST) 128 # define FEAT_CMDWIN 129 #endif 130 131 /* 132 * +folding Fold lines. 133 */ 134 #ifdef FEAT_NORMAL 135 # define FEAT_FOLDING 136 #endif 137 138 /* 139 * +digraphs Digraphs. 140 * In insert mode and on the command line you will be 141 * able to use digraphs. The CTRL-K command will work. 142 * Define OLD_DIGRAPHS to get digraphs compatible with 143 * Vim 5.x. The new ones are from RFC 1345. 144 */ 145 #ifdef FEAT_NORMAL 146 # define FEAT_DIGRAPHS 147 /* #define OLD_DIGRAPHS */ 148 #endif 149 150 /* 151 * +langmap 'langmap' option. Only useful when you put your 152 * keyboard in a special language mode, e.g. for typing 153 * greek. 154 */ 155 #ifdef FEAT_BIG 156 # define FEAT_LANGMAP 157 #endif 158 159 /* 160 * +keymap 'keymap' option. Allows you to map typed keys in 161 * Insert mode for a special language. 162 */ 163 #ifdef FEAT_BIG 164 # define FEAT_KEYMAP 165 #endif 166 167 /* 168 * +localmap Mappings and abbreviations local to a buffer. 169 */ 170 #ifdef FEAT_NORMAL 171 # define FEAT_LOCALMAP 172 #endif 173 174 /* 175 * +insert_expand CTRL-N/CTRL-P/CTRL-X in insert mode. Takes about 176 * 4Kbyte of code. 177 */ 178 #ifdef FEAT_NORMAL 179 # define FEAT_INS_EXPAND 180 #endif 181 182 /* 183 * +cmdline_compl completion of mappings/abbreviations in cmdline mode. 184 * Takes a few Kbyte of code. 185 */ 186 #ifdef FEAT_NORMAL 187 # define FEAT_CMDL_COMPL 188 #endif 189 190 #ifdef FEAT_NORMAL 191 # define VIM_BACKTICK /* internal backtick expansion */ 192 #endif 193 194 /* 195 * +visual Visual mode - now always included. 196 * +visualextra Extra features for Visual mode (mostly block operators). 197 * Now always included. 198 */ 199 200 /* 201 * +virtualedit 'virtualedit' option and its implementation 202 * Now always included. 203 */ 204 205 /* 206 * +cmdline_info 'showcmd' and 'ruler' options. 207 */ 208 #ifdef FEAT_NORMAL 209 # define FEAT_CMDL_INFO 210 #endif 211 212 /* 213 * +linebreak 'showbreak', 'breakat' and 'linebreak' options. 214 * Also 'numberwidth'. 215 */ 216 #ifdef FEAT_NORMAL 217 # define FEAT_LINEBREAK 218 #endif 219 220 /* 221 * +extra_search 'hlsearch' and 'incsearch' options. 222 */ 223 #ifdef FEAT_NORMAL 224 # define FEAT_SEARCH_EXTRA 225 #endif 226 227 /* 228 * +quickfix Quickfix commands. 229 */ 230 #ifdef FEAT_NORMAL 231 # define FEAT_QUICKFIX 232 #endif 233 234 /* 235 * +file_in_path "gf" and "<cfile>" commands. 236 */ 237 #ifdef FEAT_NORMAL 238 # define FEAT_SEARCHPATH 239 #endif 240 241 /* 242 * +find_in_path "[I" ":isearch" "^W^I", ":checkpath", etc. 243 */ 244 #ifdef FEAT_NORMAL 245 # ifdef FEAT_SEARCHPATH /* FEAT_SEARCHPATH is required */ 246 # define FEAT_FIND_ID 247 # endif 248 #endif 249 250 /* 251 * +path_extra up/downwards searching in 'path' and 'tags'. 252 */ 253 #ifdef FEAT_NORMAL 254 # define FEAT_PATH_EXTRA 255 #endif 256 257 /* 258 * +rightleft Right-to-left editing/typing support. 259 * 260 * Disabled for EBCDIC as it requires multibyte. 261 */ 262 #if defined(FEAT_BIG) && !defined(DISABLE_RIGHTLEFT) && !defined(EBCDIC) 263 # define FEAT_RIGHTLEFT 264 #endif 265 266 /* 267 * +farsi Farsi (Persian language) Keymap support. 268 * Requires FEAT_RIGHTLEFT. 269 * 270 * Disabled for EBCDIC as it requires multibyte. 271 */ 272 #if defined(FEAT_BIG) && !defined(DISABLE_FARSI) && !defined(EBCDIC) 273 # define FEAT_FKMAP 274 #endif 275 #ifdef FEAT_FKMAP 276 # ifndef FEAT_RIGHTLEFT 277 # define FEAT_RIGHTLEFT 278 # endif 279 #endif 280 281 /* 282 * +arabic Arabic keymap and shaping support. 283 * Requires FEAT_RIGHTLEFT 284 * 285 * Disabled for EBCDIC as it requires multibyte. 286 */ 287 #if defined(FEAT_BIG) && !defined(DISABLE_ARABIC) && !defined(EBCDIC) 288 # define FEAT_ARABIC 289 #endif 290 #ifdef FEAT_ARABIC 291 # ifndef FEAT_RIGHTLEFT 292 # define FEAT_RIGHTLEFT 293 # endif 294 #endif 295 296 /* 297 * +emacs_tags When FEAT_EMACS_TAGS defined: Include support for 298 * emacs style TAGS file. 299 */ 300 #ifdef FEAT_BIG 301 # define FEAT_EMACS_TAGS 302 #endif 303 304 /* 305 * +tag_binary Can use a binary search for the tags file. 306 * 307 * Disabled for EBCDIC: 308 * On z/OS Unix we have the problem that /bin/sort sorts ASCII instead of 309 * EBCDIC. With this binary search doesn't work, as VIM expects a tag file 310 * sorted by character values. I'm not sure how to fix this. Should we really 311 * do a EBCDIC to ASCII conversion for this?? 312 */ 313 #if !defined(EBCDIC) 314 # define FEAT_TAG_BINS 315 #endif 316 317 /* 318 * +tag_old_static Old style static tags: "file:tag file ..". Slows 319 * down tag searching a bit. 320 */ 321 #ifdef FEAT_NORMAL 322 # define FEAT_TAG_OLDSTATIC 323 #endif 324 325 /* 326 * +tag_any_white Allow any white space to separate the fields in a tags 327 * file. When not defined, only a TAB is allowed. 328 */ 329 /* #define FEAT_TAG_ANYWHITE */ 330 331 /* 332 * +cscope Unix only: Cscope support. 333 */ 334 #if defined(UNIX) && defined(FEAT_BIG) && !defined(FEAT_CSCOPE) && !defined(MACOS_X) 335 # define FEAT_CSCOPE 336 #endif 337 338 /* 339 * +eval Built-in script language and expression evaluation, 340 * ":let", ":if", etc. 341 * +float Floating point variables. 342 * +num64 64-bit Number. 343 */ 344 #ifdef FEAT_NORMAL 345 # define FEAT_EVAL 346 # if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS_X) 347 # define FEAT_FLOAT 348 # endif 349 # if defined(HAVE_STDINT_H) || defined(WIN3264) || (VIM_SIZEOF_LONG >= 8) 350 # define FEAT_NUM64 351 # endif 352 #endif 353 354 #ifdef FEAT_EVAL 355 # define HAVE_SANDBOX 356 #endif 357 358 /* 359 * +profile Profiling for functions and scripts. 360 */ 361 #if defined(FEAT_HUGE) \ 362 && defined(FEAT_EVAL) \ 363 && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \ 364 || defined(WIN3264)) 365 # define FEAT_PROFILE 366 #endif 367 368 /* 369 * +reltime reltime() function 370 */ 371 #if defined(FEAT_NORMAL) \ 372 && defined(FEAT_EVAL) \ 373 && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \ 374 || defined(WIN3264)) 375 # define FEAT_RELTIME 376 #endif 377 378 /* 379 * +timers timer_start() 380 */ 381 #if defined(FEAT_RELTIME) && (defined(UNIX) || defined(WIN32) || defined(VMS) ) 382 # define FEAT_TIMERS 383 #endif 384 385 /* 386 * +textobjects Text objects: "vaw", "das", etc. 387 */ 388 #if defined(FEAT_NORMAL) && defined(FEAT_EVAL) 389 # define FEAT_TEXTOBJ 390 #endif 391 392 /* 393 * Insert mode completion with 'completefunc'. 394 */ 395 #if defined(FEAT_INS_EXPAND) && defined(FEAT_EVAL) 396 # define FEAT_COMPL_FUNC 397 #endif 398 399 /* 400 * +user_commands Allow the user to define his own commands. 401 */ 402 #ifdef FEAT_NORMAL 403 # define FEAT_USR_CMDS 404 #endif 405 406 /* 407 * +printer ":hardcopy" command 408 * +postscript Printing uses PostScript file output. 409 */ 410 #if defined(FEAT_NORMAL) && (defined(MSWIN) || defined(FEAT_EVAL)) \ 411 && !defined(AMIGA) 412 # define FEAT_PRINTER 413 #endif 414 #if defined(FEAT_PRINTER) && ((defined(MSWIN) && defined(MSWINPS)) \ 415 || (!defined(MSWIN) && defined(FEAT_EVAL))) 416 # define FEAT_POSTSCRIPT 417 #endif 418 419 /* 420 * +modify_fname modifiers for file name. E.g., "%:p:h". 421 */ 422 #ifdef FEAT_NORMAL 423 # define FEAT_MODIFY_FNAME 424 #endif 425 426 /* 427 * +diff Displaying diffs in a nice way. 428 * Requires +windows and +autocmd. 429 */ 430 #if defined(FEAT_NORMAL) 431 # define FEAT_DIFF 432 #endif 433 434 /* 435 * +title 'title' and 'icon' options 436 * +statusline 'statusline', 'rulerformat' and special format of 437 * 'titlestring' and 'iconstring' options. 438 * +byte_offset '%o' in 'statusline' and builtin functions line2byte() 439 * and byte2line(). 440 * Note: Required for Macintosh. 441 */ 442 #if defined(FEAT_NORMAL) 443 # define FEAT_TITLE 444 #endif 445 446 #ifdef FEAT_NORMAL 447 # define FEAT_STL_OPT 448 # ifndef FEAT_CMDL_INFO 449 # define FEAT_CMDL_INFO /* 'ruler' is required for 'statusline' */ 450 # endif 451 #endif 452 453 #ifdef FEAT_NORMAL 454 # define FEAT_BYTEOFF 455 #endif 456 457 /* 458 * +wildignore 'wildignore' and 'backupskip' options 459 * Needed for Unix to make "crontab -e" work. 460 */ 461 #if defined(FEAT_NORMAL) || defined(UNIX) 462 # define FEAT_WILDIGN 463 #endif 464 465 /* 466 * +wildmenu 'wildmenu' option 467 */ 468 #if defined(FEAT_NORMAL) 469 # define FEAT_WILDMENU 470 #endif 471 472 /* 473 * +viminfo reading/writing the viminfo file. Takes about 8Kbyte 474 * of code. 475 * VIMINFO_FILE Location of user .viminfo file (should start with $). 476 * VIMINFO_FILE2 Location of alternate user .viminfo file. 477 */ 478 #ifdef FEAT_NORMAL 479 # define FEAT_VIMINFO 480 /* #define VIMINFO_FILE "$HOME/foo/.viminfo" */ 481 /* #define VIMINFO_FILE2 "~/bar/.viminfo" */ 482 #endif 483 484 /* 485 * +syntax syntax highlighting. When using this, it's a good 486 * idea to have +autocmd and +eval too. 487 */ 488 #if defined(FEAT_NORMAL) || defined(PROTO) 489 # define FEAT_SYN_HL 490 #endif 491 492 /* 493 * +conceal 'conceal' option. Needs syntax highlighting 494 * as this is how the concealed text is defined. 495 */ 496 #if defined(FEAT_BIG) && defined(FEAT_SYN_HL) 497 # define FEAT_CONCEAL 498 #endif 499 500 /* 501 * +textprop Text properties 502 */ 503 #if defined(FEAT_EVAL) && defined(FEAT_SYN_HL) 504 # define FEAT_TEXT_PROP 505 #endif 506 507 /* 508 * +spell spell checking 509 * 510 * Disabled for EBCDIC: * Doesn't work (SIGSEGV). 511 */ 512 #if (defined(FEAT_NORMAL) || defined(PROTO)) && !defined(EBCDIC) 513 # define FEAT_SPELL 514 #endif 515 516 /* 517 * +builtin_terms Choose one out of the following four: 518 * 519 * NO_BUILTIN_TCAPS Do not include any builtin termcap entries (used only 520 * with HAVE_TGETENT defined). 521 * 522 * (nothing) Machine specific termcap entries will be included. 523 * 524 * SOME_BUILTIN_TCAPS Include most useful builtin termcap entries (used only 525 * with NO_BUILTIN_TCAPS not defined). 526 * This is the default. 527 * 528 * ALL_BUILTIN_TCAPS Include all builtin termcap entries 529 * (used only with NO_BUILTIN_TCAPS not defined). 530 */ 531 #ifdef HAVE_TGETENT 532 /* #define NO_BUILTIN_TCAPS */ 533 #endif 534 535 #if !defined(NO_BUILTIN_TCAPS) 536 # ifdef FEAT_BIG 537 # define ALL_BUILTIN_TCAPS 538 # else 539 # define SOME_BUILTIN_TCAPS /* default */ 540 # endif 541 #endif 542 543 /* 544 * +lispindent lisp indenting (From Eric Fischer). 545 * +cindent C code indenting (From Eric Fischer). 546 * +smartindent smart C code indenting when the 'si' option is set. 547 * 548 * These two need to be defined when making prototypes. 549 */ 550 #if defined(FEAT_NORMAL) || defined(PROTO) 551 # define FEAT_LISP 552 #endif 553 554 #if defined(FEAT_NORMAL) || defined(PROTO) 555 # define FEAT_CINDENT 556 #endif 557 558 #ifdef FEAT_NORMAL 559 # define FEAT_SMARTINDENT 560 #endif 561 562 /* 563 * +comments 'comments' option. 564 */ 565 #ifdef FEAT_NORMAL 566 # define FEAT_COMMENTS 567 #endif 568 569 /* 570 * +cryptv Encryption (by Mohsin Ahmed <[email protected]>). 571 */ 572 #if defined(FEAT_NORMAL) && !defined(FEAT_CRYPT) || defined(PROTO) 573 # define FEAT_CRYPT 574 #endif 575 576 /* 577 * +mksession ":mksession" command. 578 * Requires +windows and +vertsplit. 579 */ 580 #if defined(FEAT_NORMAL) 581 # define FEAT_SESSION 582 #endif 583 584 /* 585 * +multi_lang Multi language support. ":menutrans", ":language", etc. 586 * +gettext Message translations (requires +multi_lang) 587 * (only when "lang" archive unpacked) 588 */ 589 #ifdef FEAT_NORMAL 590 # define FEAT_MULTI_LANG 591 #endif 592 #if defined(HAVE_GETTEXT) && defined(FEAT_MULTI_LANG) \ 593 && (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) 594 # define FEAT_GETTEXT 595 #endif 596 597 /* 598 * +multi_byte Generic multi-byte character handling. 599 * Now always enabled. 600 */ 601 602 /* 603 * +multi_byte_ime Win32 IME input method. Only for far-east Windows, so 604 * IME can be used to input chars. Not tested much! 605 */ 606 #if defined(FEAT_GUI_W32) && !defined(FEAT_MBYTE_IME) 607 /* #define FEAT_MBYTE_IME */ 608 # endif 609 610 /* Use iconv() when it's available. */ 611 #if (defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) || defined(DYNAMIC_ICONV) 612 # define USE_ICONV 613 #endif 614 615 /* 616 * +xim X Input Method. For entering special languages like 617 * chinese and Japanese. 618 * +hangul_input Internal Hangul input method. Must be included 619 * through configure: "--enable-hangulin" 620 * Both are for Unix and VMS only. 621 */ 622 #ifndef FEAT_XIM 623 /* #define FEAT_XIM */ 624 #endif 625 626 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) 627 # define USE_XIM 1 /* needed for GTK include files */ 628 #endif 629 630 #ifdef FEAT_HANGULIN 631 # define HANGUL_DEFAULT_KEYBOARD 2 /* 2 or 3 bulsik keyboard */ 632 # define ESC_CHG_TO_ENG_MODE /* if defined, when ESC pressed, 633 * turn to english mode 634 */ 635 # if defined(FEAT_XIM) && !defined(LINT) 636 Error: You should select only ONE of XIM and HANGUL INPUT 637 # endif 638 #endif 639 #if defined(FEAT_HANGULIN) || defined(FEAT_XIM) 640 /* # define X_LOCALE */ /* for OS with incomplete locale 641 support, like old linux versions. */ 642 #endif 643 644 /* 645 * +xfontset X fontset support. For outputting wide characters. 646 */ 647 #ifndef FEAT_XFONTSET 648 # if defined(HAVE_X11) && !defined(FEAT_GUI_GTK) 649 # define FEAT_XFONTSET 650 # else 651 /* # define FEAT_XFONTSET */ 652 # endif 653 #endif 654 655 /* 656 * +libcall libcall() function 657 */ 658 /* Using dlopen() also requires dlsym() to be available. */ 659 #if defined(HAVE_DLOPEN) && defined(HAVE_DLSYM) 660 # define USE_DLOPEN 661 #endif 662 #if defined(FEAT_EVAL) && (defined(WIN3264) || ((defined(UNIX) || defined(VMS)) \ 663 && (defined(USE_DLOPEN) || defined(HAVE_SHL_LOAD)))) 664 # define FEAT_LIBCALL 665 #endif 666 667 /* 668 * +menu ":menu" command 669 */ 670 #ifdef FEAT_NORMAL 671 # define FEAT_MENU 672 # ifdef FEAT_GUI_W32 673 # define FEAT_TEAROFF 674 # endif 675 #endif 676 677 /* 678 * popup menu in a terminal 679 */ 680 #if defined(FEAT_MENU) && !defined(ALWAYS_USE_GUI) && defined(FEAT_INS_EXPAND) 681 # define FEAT_TERM_POPUP_MENU 682 #endif 683 684 /* There are two ways to use XPM. */ 685 #if (defined(HAVE_XM_XPMP_H) && defined(FEAT_GUI_MOTIF)) \ 686 || defined(HAVE_X11_XPM_H) 687 # define HAVE_XPM 1 688 #endif 689 690 /* 691 * +toolbar Include code for a toolbar (for the Win32 GUI, GTK 692 * always has it). But only if menus are enabled. 693 */ 694 #if defined(FEAT_NORMAL) && defined(FEAT_MENU) \ 695 && (defined(FEAT_GUI_GTK) \ 696 || defined(FEAT_GUI_MSWIN) \ 697 || ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \ 698 && defined(HAVE_XPM)) \ 699 || defined(FEAT_GUI_PHOTON)) 700 # define FEAT_TOOLBAR 701 #endif 702 703 704 #if defined(FEAT_TOOLBAR) && !defined(FEAT_MENU) 705 # define FEAT_MENU 706 #endif 707 708 /* 709 * GUI tabline 710 */ 711 #if defined(FEAT_NORMAL) \ 712 && (defined(FEAT_GUI_GTK) \ 713 || (defined(FEAT_GUI_MOTIF) && defined(HAVE_XM_NOTEBOOK_H)) \ 714 || defined(FEAT_GUI_MAC) \ 715 || (defined(FEAT_GUI_MSWIN) \ 716 && (!defined(_MSC_VER) || _MSC_VER > 1020))) 717 # define FEAT_GUI_TABLINE 718 #endif 719 720 /* 721 * +browse ":browse" command. 722 * or just the ":browse" command modifier 723 */ 724 #if defined(FEAT_NORMAL) 725 # define FEAT_BROWSE_CMD 726 # if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) 727 # define FEAT_BROWSE 728 # endif 729 #endif 730 731 /* 732 * On some systems, when we compile with the GUI, we always use it. On Mac 733 * there is no terminal version, and on Windows we can't figure out how to 734 * fork one off with :gui. 735 */ 736 #if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_DARWIN)) 737 # define ALWAYS_USE_GUI 738 #endif 739 740 /* 741 * +dialog_gui Use GUI dialog. 742 * +dialog_con May use Console dialog. 743 * When none of these defined there is no dialog support. 744 */ 745 #ifdef FEAT_NORMAL 746 # if ((defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF)) \ 747 && defined(HAVE_X11_XPM_H)) \ 748 || defined(FEAT_GUI_GTK) \ 749 || defined(FEAT_GUI_PHOTON) \ 750 || defined(FEAT_GUI_MSWIN) \ 751 || defined(FEAT_GUI_MAC) 752 # define FEAT_CON_DIALOG 753 # define FEAT_GUI_DIALOG 754 # else 755 # define FEAT_CON_DIALOG 756 # endif 757 #endif 758 #if !defined(FEAT_GUI_DIALOG) && (defined(FEAT_GUI_MOTIF) \ 759 || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \ 760 || defined(FEAT_GUI_W32)) 761 /* need a dialog to show error messages when starting from the desktop */ 762 # define FEAT_GUI_DIALOG 763 #endif 764 #if defined(FEAT_GUI_DIALOG) && \ 765 (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ 766 || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) \ 767 || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) 768 # define FEAT_GUI_TEXTDIALOG 769 # ifndef ALWAYS_USE_GUI 770 # define FEAT_CON_DIALOG 771 # endif 772 #endif 773 774 /* 775 * +termguicolors 'termguicolors' option. 776 */ 777 #if (defined(FEAT_BIG) && defined(FEAT_SYN_HL)) && !defined(ALWAYS_USE_GUI) 778 # define FEAT_TERMGUICOLORS 779 #endif 780 781 /* Mac specific thing: Codewarrior interface. */ 782 #ifdef FEAT_GUI_MAC 783 # define FEAT_CW_EDITOR 784 #endif 785 786 /* 787 * +vartabs 'vartabstop' and 'varsofttabstop' options. 788 */ 789 #ifdef FEAT_BIG 790 # define FEAT_VARTABS 791 #endif 792 793 /* 794 * Preferences: 795 * ============ 796 */ 797 798 /* 799 * +writebackup 'writebackup' is default on: 800 * Use a backup file while overwriting a file. But it's 801 * deleted again when 'backup' is not set. Changing this 802 * is strongly discouraged: You can lose all your 803 * changes when the computer crashes while writing the 804 * file. 805 * VMS note: It does work on VMS as well, but because of 806 * version handling it does not have any purpose. 807 * Overwrite will write to the new version. 808 */ 809 #ifndef VMS 810 # define FEAT_WRITEBACKUP 811 #endif 812 813 /* 814 * +xterm_save The t_ti and t_te entries for the builtin xterm will 815 * be set to save the screen when starting Vim and 816 * restoring it when exiting. 817 */ 818 /* #define FEAT_XTERM_SAVE */ 819 820 /* 821 * DEBUG Output a lot of debugging garbage. 822 */ 823 /* #define DEBUG */ 824 825 /* 826 * STARTUPTIME Time the startup process. Writes a file with 827 * timestamps. 828 */ 829 #if defined(FEAT_NORMAL) \ 830 && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \ 831 || defined(WIN3264)) 832 # define STARTUPTIME 1 833 #endif 834 835 /* 836 * MEM_PROFILE Debugging of memory allocation and freeing. 837 */ 838 /* #define MEM_PROFILE */ 839 840 /* 841 * VIMRC_FILE Name of the .vimrc file in current dir. 842 */ 843 /* #define VIMRC_FILE ".vimrc" */ 844 845 /* 846 * EXRC_FILE Name of the .exrc file in current dir. 847 */ 848 /* #define EXRC_FILE ".exrc" */ 849 850 /* 851 * GVIMRC_FILE Name of the .gvimrc file in current dir. 852 */ 853 /* #define GVIMRC_FILE ".gvimrc" */ 854 855 /* 856 * SESSION_FILE Name of the default ":mksession" file. 857 */ 858 #define SESSION_FILE "Session.vim" 859 860 /* 861 * USR_VIMRC_FILE Name of the user .vimrc file. 862 * USR_VIMRC_FILE2 Name of alternate user .vimrc file. 863 * USR_VIMRC_FILE3 Name of alternate user .vimrc file. 864 */ 865 /* #define USR_VIMRC_FILE "~/foo/.vimrc" */ 866 /* #define USR_VIMRC_FILE2 "~/bar/.vimrc" */ 867 /* #define USR_VIMRC_FILE3 "$VIM/.vimrc" */ 868 869 /* 870 * VIM_DEFAULTS_FILE Name of the defaults.vim script file 871 */ 872 /* #define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim" */ 873 874 /* 875 * EVIM_FILE Name of the evim.vim script file 876 */ 877 /* #define EVIM_FILE "$VIMRUNTIME/evim.vim" */ 878 879 /* 880 * USR_EXRC_FILE Name of the user .exrc file. 881 * USR_EXRC_FILE2 Name of the alternate user .exrc file. 882 */ 883 /* #define USR_EXRC_FILE "~/foo/.exrc" */ 884 /* #define USR_EXRC_FILE2 "~/bar/.exrc" */ 885 886 /* 887 * USR_GVIMRC_FILE Name of the user .gvimrc file. 888 * USR_GVIMRC_FILE2 Name of the alternate user .gvimrc file. 889 */ 890 /* #define USR_GVIMRC_FILE "~/foo/.gvimrc" */ 891 /* #define USR_GVIMRC_FILE2 "~/bar/.gvimrc" */ 892 /* #define USR_GVIMRC_FILE3 "$VIM/.gvimrc" */ 893 894 /* 895 * SYS_VIMRC_FILE Name of the system-wide .vimrc file. 896 */ 897 /* #define SYS_VIMRC_FILE "/etc/vimrc" */ 898 899 /* 900 * SYS_GVIMRC_FILE Name of the system-wide .gvimrc file. 901 */ 902 /* #define SYS_GVIMRC_FILE "/etc/gvimrc" */ 903 904 /* 905 * DFLT_HELPFILE Name of the help file. 906 */ 907 /* # define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt.gz" */ 908 909 /* 910 * File names for: 911 * FILETYPE_FILE switch on file type detection 912 * FTPLUGIN_FILE switch on loading filetype plugin files 913 * INDENT_FILE switch on loading indent files 914 * FTOFF_FILE switch off file type detection 915 * FTPLUGOF_FILE switch off loading settings files 916 * INDOFF_FILE switch off loading indent files 917 */ 918 /* # define FILETYPE_FILE "filetype.vim" */ 919 /* # define FTPLUGIN_FILE "ftplugin.vim" */ 920 /* # define INDENT_FILE "indent.vim" */ 921 /* # define FTOFF_FILE "ftoff.vim" */ 922 /* # define FTPLUGOF_FILE "ftplugof.vim" */ 923 /* # define INDOFF_FILE "indoff.vim" */ 924 925 /* 926 * SYS_MENU_FILE Name of the default menu.vim file. 927 */ 928 /* # define SYS_MENU_FILE "$VIMRUNTIME/menu.vim" */ 929 930 /* 931 * SYS_OPTWIN_FILE Name of the default optwin.vim file. 932 */ 933 #ifndef SYS_OPTWIN_FILE 934 # define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim" 935 #endif 936 937 /* 938 * SYNTAX_FNAME Name of a syntax file, where %s is the syntax name. 939 */ 940 /* #define SYNTAX_FNAME "/foo/%s.vim" */ 941 942 /* 943 * RUNTIME_DIRNAME Generic name for the directory of the runtime files. 944 */ 945 #ifndef RUNTIME_DIRNAME 946 # define RUNTIME_DIRNAME "runtime" 947 #endif 948 949 /* 950 * RUNTIME_GLOBAL Comma-separated list of directory names for global Vim 951 * runtime directories. 952 * Don't define this if the preprocessor can't handle 953 * string concatenation. 954 * Also set by "--with-global-runtime" configure argument. 955 */ 956 /* #define RUNTIME_GLOBAL "/etc/vim" */ 957 958 /* 959 * RUNTIME_GLOBAL_AFTER Comma-separated list of directory names for global Vim 960 * runtime after directories. 961 * Don't define this if the preprocessor can't handle 962 * string concatenation. 963 * Also set by "--with-global-runtime" configure argument. 964 */ 965 /* #define RUNTIME_GLOBAL_AFTER "/etc/vim/after" */ 966 967 /* 968 * MODIFIED_BY Name of who modified Vim. Required when distributing 969 * a modified version of Vim. 970 * Also from the "--with-modified-by" configure argument. 971 */ 972 /* #define MODIFIED_BY "John Doe" */ 973 974 /* 975 * Machine dependent: 976 * ================== 977 */ 978 979 /* 980 * +fork Unix only: fork() support (detected by configure) 981 * +system Use system() instead of fork/exec for starting a 982 * shell. Doesn't work for the GUI! 983 */ 984 /* #define USE_SYSTEM */ 985 986 /* 987 * +X11 Unix only. Include code for xterm title saving and X 988 * clipboard. Only works if HAVE_X11 is also defined. 989 */ 990 #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) 991 # define WANT_X11 992 #endif 993 994 /* 995 * XSMP - X11 Session Management Protocol 996 * It may be preferred to disable this if the GUI supports it (e.g., 997 * GNOME/KDE) and implement save-yourself etc. through that, but it may also 998 * be cleaner to have all SM-aware vims do the same thing (libSM does not 999 * depend upon X11). 1000 * If your GUI wants to support SM itself, change this ifdef. 1001 * I'm assuming that any X11 implementation will cope with this for now. 1002 */ 1003 #if defined(HAVE_X11) && defined(WANT_X11) && defined(HAVE_X11_SM_SMLIB_H) 1004 # define USE_XSMP 1005 #endif 1006 #if defined(USE_XSMP_INTERACT) && !defined(USE_XSMP) 1007 # undef USE_XSMP_INTERACT 1008 #endif 1009 1010 /* 1011 * +mouse_xterm Unix only: Include code for xterm mouse handling. 1012 * +mouse_dec idem, for Dec mouse handling. 1013 * +mouse_jsbterm idem, for Jsbterm mouse handling. 1014 * +mouse_netterm idem, for Netterm mouse handling. 1015 * (none) MS-DOS mouse support. 1016 * +mouse_gpm Unix only: Include code for Linux console mouse 1017 * handling. 1018 * +mouse_pterm PTerm mouse support for QNX 1019 * +mouse_sgr Unix only: Include code for for SGR-styled mouse. 1020 * +mouse_sysmouse Unix only: Include code for FreeBSD and DragonFly 1021 * console mouse handling. 1022 * +mouse_urxvt Unix only: Include code for for urxvt mosue handling. 1023 * +mouse Any mouse support (any of the above enabled). 1024 */ 1025 /* OS/2 and Amiga console have no mouse support */ 1026 #if !defined(AMIGA) 1027 # ifdef FEAT_NORMAL 1028 # define FEAT_MOUSE_XTERM 1029 # endif 1030 # ifdef FEAT_BIG 1031 # define FEAT_MOUSE_NET 1032 # endif 1033 # ifdef FEAT_BIG 1034 # define FEAT_MOUSE_DEC 1035 # endif 1036 # ifdef FEAT_BIG 1037 # define FEAT_MOUSE_URXVT 1038 # endif 1039 # ifdef FEAT_BIG 1040 # define FEAT_MOUSE_SGR 1041 # endif 1042 # if defined(FEAT_NORMAL) && defined(WIN3264) 1043 # define DOS_MOUSE 1044 # endif 1045 # if defined(FEAT_NORMAL) && defined(__QNX__) 1046 # define FEAT_MOUSE_PTERM 1047 # endif 1048 #endif 1049 1050 /* 1051 * Note: Only one of the following may be defined: 1052 * FEAT_MOUSE_GPM 1053 * FEAT_SYSMOUSE 1054 * FEAT_MOUSE_JSB 1055 * FEAT_MOUSE_PTERM 1056 */ 1057 #if defined(FEAT_NORMAL) && defined(HAVE_GPM) 1058 # define FEAT_MOUSE_GPM 1059 #endif 1060 1061 #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE) 1062 # define FEAT_SYSMOUSE 1063 #endif 1064 1065 /* urxvt is a small variation of mouse_xterm, and shares its code */ 1066 #if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM) 1067 # define FEAT_MOUSE_XTERM 1068 #endif 1069 1070 /* sgr is a small variation of mouse_xterm, and shares its code */ 1071 #if defined(FEAT_MOUSE_SGR) && !defined(FEAT_MOUSE_XTERM) 1072 # define FEAT_MOUSE_XTERM 1073 #endif 1074 1075 /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */ 1076 #if !defined(FEAT_MOUSE_TTY) \ 1077 && (defined(FEAT_MOUSE_XTERM) \ 1078 || defined(FEAT_MOUSE_NET) \ 1079 || defined(FEAT_MOUSE_DEC) \ 1080 || defined(DOS_MOUSE) \ 1081 || defined(FEAT_MOUSE_GPM) \ 1082 || defined(FEAT_MOUSE_JSB) \ 1083 || defined(FEAT_MOUSE_PTERM) \ 1084 || defined(FEAT_SYSMOUSE) \ 1085 || defined(FEAT_MOUSE_URXVT) \ 1086 || defined(FEAT_MOUSE_SGR)) 1087 # define FEAT_MOUSE_TTY /* include non-GUI mouse support */ 1088 #endif 1089 #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI)) 1090 # define FEAT_MOUSE /* include generic mouse support */ 1091 #endif 1092 1093 /* 1094 * +clipboard Clipboard support. Always used for the GUI. 1095 * +xterm_clipboard Unix only: Include code for handling the clipboard 1096 * in an xterm like in the GUI. 1097 */ 1098 1099 #ifdef FEAT_CYGWIN_WIN32_CLIPBOARD 1100 # define FEAT_CLIPBOARD 1101 #endif 1102 1103 #ifdef FEAT_GUI 1104 # ifndef FEAT_CLIPBOARD 1105 # define FEAT_CLIPBOARD 1106 # endif 1107 #endif 1108 1109 #if defined(FEAT_NORMAL) \ 1110 && (defined(UNIX) || defined(VMS)) \ 1111 && defined(WANT_X11) && defined(HAVE_X11) 1112 # define FEAT_XCLIPBOARD 1113 # ifndef FEAT_CLIPBOARD 1114 # define FEAT_CLIPBOARD 1115 # endif 1116 #endif 1117 1118 /* 1119 * +dnd Drag'n'drop support. Always used for the GTK+ GUI. 1120 */ 1121 #if defined(FEAT_CLIPBOARD) && defined(FEAT_GUI_GTK) 1122 # define FEAT_DND 1123 #endif 1124 1125 #if defined(FEAT_GUI_MSWIN) && defined(FEAT_SMALL) 1126 # define MSWIN_FIND_REPLACE /* include code for find/replace dialog */ 1127 # define MSWIN_FR_BUFSIZE 256 1128 #endif 1129 1130 #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MOTIF) \ 1131 || defined(MSWIN_FIND_REPLACE) 1132 # define FIND_REPLACE_DIALOG 1 1133 #endif 1134 1135 /* 1136 * +clientserver Remote control via the remote_send() function 1137 * and the --remote argument 1138 */ 1139 #if (defined(WIN32) || defined(FEAT_XCLIPBOARD)) && defined(FEAT_EVAL) 1140 # define FEAT_CLIENTSERVER 1141 #endif 1142 1143 /* 1144 * +autoservername Automatically generate a servername for clientserver 1145 * when --servername is not passed on the command line. 1146 */ 1147 #if defined(FEAT_CLIENTSERVER) && !defined(FEAT_AUTOSERVERNAME) 1148 # ifdef WIN3264 1149 /* Always enabled on MS-Windows. */ 1150 # define FEAT_AUTOSERVERNAME 1151 # else 1152 /* Enable here if you don't use configure. */ 1153 /* # define FEAT_AUTOSERVERNAME */ 1154 # endif 1155 #endif 1156 1157 /* 1158 * +termresponse send t_RV to obtain terminal response. Used for xterm 1159 * to check if mouse dragging can be used and if term 1160 * codes can be obtained. 1161 */ 1162 #if (defined(FEAT_NORMAL) || defined(FEAT_MOUSE)) && defined(HAVE_TGETENT) 1163 # define FEAT_TERMRESPONSE 1164 #endif 1165 1166 /* 1167 * cursor shape Adjust the shape of the cursor to the mode. 1168 * mouse shape Adjust the shape of the mouse pointer to the mode. 1169 */ 1170 #ifdef FEAT_NORMAL 1171 /* MS-DOS console and Win32 console can change cursor shape */ 1172 # if defined(WIN3264) && !defined(FEAT_GUI_W32) 1173 # define MCH_CURSOR_SHAPE 1174 # endif 1175 # if defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \ 1176 || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \ 1177 || defined(FEAT_GUI_PHOTON) 1178 # define FEAT_MOUSESHAPE 1179 # endif 1180 #endif 1181 1182 /* GUI and some consoles can change the shape of the cursor. The code is also 1183 * needed for the 'mouseshape' and 'concealcursor' options. */ 1184 #if defined(FEAT_GUI) \ 1185 || defined(MCH_CURSOR_SHAPE) \ 1186 || defined(FEAT_MOUSESHAPE) \ 1187 || defined(FEAT_CONCEAL) \ 1188 || (defined(UNIX) && defined(FEAT_NORMAL)) 1189 # define CURSOR_SHAPE 1190 #endif 1191 1192 #if defined(FEAT_MZSCHEME) && (defined(FEAT_GUI_W32) || defined(FEAT_GUI_GTK) \ 1193 || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ 1194 || defined(FEAT_GUI_MAC)) 1195 # define MZSCHEME_GUI_THREADS 1196 #endif 1197 1198 /* 1199 * +ARP Amiga only. Use arp.library, DOS 2.0 is not required. 1200 */ 1201 #if !defined(NO_ARP) && !defined(__amigaos4__) 1202 # define FEAT_ARP 1203 #endif 1204 1205 /* 1206 * +GUI_Athena To compile Vim with or without the GUI (gvim) you have 1207 * +GUI_Motif to edit the Makefile. 1208 */ 1209 1210 /* 1211 * +ole Win32 OLE automation: Use Makefile.ovc. 1212 */ 1213 1214 /* 1215 * These features can only be included by using a configure argument. See the 1216 * Makefile for a line to uncomment. 1217 * +lua Lua interface: "--enable-luainterp" 1218 * +mzscheme MzScheme interface: "--enable-mzscheme" 1219 * +perl Perl interface: "--enable-perlinterp" 1220 * +python Python interface: "--enable-pythoninterp" 1221 * +tcl TCL interface: "--enable-tclinterp" 1222 * +netbeans_intg Netbeans integration 1223 * +channel Inter process communication 1224 */ 1225 1226 /* 1227 * These features are automatically detected: 1228 * +terminfo 1229 * +tgetent 1230 */ 1231 1232 /* 1233 * The Netbeans feature requires +eval. 1234 */ 1235 #if !defined(FEAT_EVAL) && defined(FEAT_NETBEANS_INTG) 1236 # undef FEAT_NETBEANS_INTG 1237 #endif 1238 1239 /* 1240 * The +channel feature requires +eval. 1241 */ 1242 #if !defined(FEAT_EVAL) && defined(FEAT_JOB_CHANNEL) 1243 # undef FEAT_JOB_CHANNEL 1244 #endif 1245 1246 /* 1247 * +terminal ":terminal" command. Runs a terminal in a window. 1248 * requires +channel 1249 */ 1250 #if defined(FEAT_TERMINAL) && !defined(FEAT_JOB_CHANNEL) 1251 # undef FEAT_TERMINAL 1252 #endif 1253 #if defined(FEAT_TERMINAL) && !defined(CURSOR_SHAPE) 1254 # define CURSOR_SHAPE 1255 #endif 1256 1257 /* 1258 * +signs Allow signs to be displayed to the left of text lines. 1259 * Adds the ":sign" command. 1260 */ 1261 #if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG) 1262 # define FEAT_SIGNS 1263 # if ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \ 1264 && defined(HAVE_X11_XPM_H)) \ 1265 || defined(FEAT_GUI_GTK) \ 1266 || (defined(WIN32) && defined(FEAT_GUI)) 1267 # define FEAT_SIGN_ICONS 1268 # endif 1269 #endif 1270 1271 /* 1272 * +balloon_eval Allow balloon expression evaluation. Used with a 1273 * debugger and for tooltips. 1274 * Only for GUIs where it was implemented. 1275 */ 1276 #if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ 1277 || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32)) \ 1278 && ( ((defined(FEAT_TOOLBAR) || defined(FEAT_GUI_TABLINE)) \ 1279 && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)) \ 1280 || defined(FEAT_NETBEANS_INTG) || defined(FEAT_EVAL)) 1281 # define FEAT_BEVAL_GUI 1282 # if !defined(FEAT_XFONTSET) && !defined(FEAT_GUI_GTK) \ 1283 && !defined(FEAT_GUI_W32) 1284 # define FEAT_XFONTSET 1285 # endif 1286 #endif 1287 1288 #if defined(FEAT_BEVAL_GUI) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) 1289 # define FEAT_BEVAL_TIP /* balloon eval used for toolbar tooltip */ 1290 #endif 1291 1292 /* 1293 * +balloon_eval_term Allow balloon expression evaluation in the terminal. 1294 */ 1295 #if defined(FEAT_HUGE) && defined(FEAT_TIMERS) && \ 1296 (defined(UNIX) || defined(VMS) || (defined(WIN32) && !defined(FEAT_GUI_W32))) 1297 # define FEAT_BEVAL_TERM 1298 #endif 1299 1300 #if defined(FEAT_BEVAL_GUI) || defined(FEAT_BEVAL_TERM) 1301 # define FEAT_BEVAL 1302 #endif 1303 1304 /* both Motif and Athena are X11 and share some code */ 1305 #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) 1306 # define FEAT_GUI_X11 1307 #endif 1308 1309 #if defined(FEAT_NETBEANS_INTG) 1310 // NetBeans uses menus. 1311 # if !defined(FEAT_MENU) 1312 # define FEAT_MENU 1313 # endif 1314 #endif 1315 1316 #if 0 1317 /* 1318 * +footer Motif only: Add a message area at the bottom of the 1319 * main window area. 1320 */ 1321 # define FEAT_FOOTER 1322 #endif 1323 1324 /* 1325 * +autochdir 'autochdir' option. 1326 */ 1327 #if defined(FEAT_NETBEANS_INTG) || defined(FEAT_BIG) 1328 # define FEAT_AUTOCHDIR 1329 #endif 1330 1331 /* 1332 * +persistent_undo 'undofile', 'undodir' options, :wundo and :rundo, and 1333 * implementation. 1334 */ 1335 #ifdef FEAT_NORMAL 1336 # define FEAT_PERSISTENT_UNDO 1337 #endif 1338 1339 /* 1340 * +filterpipe 1341 */ 1342 #if (defined(UNIX) && !defined(USE_SYSTEM)) \ 1343 || (defined(WIN3264) && defined(FEAT_GUI_W32)) 1344 # define FEAT_FILTERPIPE 1345 #endif 1346 1347 /* 1348 * +vtp: Win32 virtual console. 1349 */ 1350 #if !defined(FEAT_GUI) && defined(WIN3264) 1351 # define FEAT_VTP 1352 #endif 1353