]> granicus.if.org Git - vim/commitdiff
patch 7.4.2111 v7.4.2111
authorBram Moolenaar <Bram@vim.org>
Thu, 28 Jul 2016 20:24:15 +0000 (22:24 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 28 Jul 2016 20:24:15 +0000 (22:24 +0200)
Problem:    Defaults are very conservative.
Solution:   Move settings from vimrc_example.vim to defaults.vim.  Load
            defaults.vim if no .vimrc was found.

14 files changed:
Filelist
runtime/defaults.vim [new file with mode: 0644]
runtime/doc/options.txt
runtime/doc/starting.txt
runtime/evim.vim
runtime/vimrc_example.vim
src/Makefile
src/feature.h
src/main.c
src/os_amiga.h
src/os_dos.h
src/os_mac.h
src/os_unix.h
src/version.c

index 22e140eef3f602626727b25daf513d932f3bc99f..dafe5342cd2d6f6a362074d0f5c6536bfb7f5a9e 100644 (file)
--- a/Filelist
+++ b/Filelist
@@ -526,8 +526,9 @@ RT_ALL =    \
                runtime/macros/urm/examples \
                runtime/macros/urm/urm \
                runtime/macros/urm/urm.vim \
-               runtime/mswin.vim \
+               runtime/defaults.vim \
                runtime/evim.vim \
+               runtime/mswin.vim \
                runtime/optwin.vim \
                runtime/ftplugin.vim \
                runtime/ftplugof.vim \
diff --git a/runtime/defaults.vim b/runtime/defaults.vim
new file mode 100644 (file)
index 0000000..f83e8bb
--- /dev/null
@@ -0,0 +1,109 @@
+" The default vimrc file.
+"
+" Maintainer:  Bram Moolenaar <Bram@vim.org>
+" Last change: 2016 Jul 28
+"
+" This is loaded if no vimrc file was found.
+" Except when Vim is run with "-u NONE" or "-C".
+" Individual settings can be reverted with ":set option&".
+" Other commands can be reverted as mentioned below.
+
+" When started as "evim", evim.vim will already have done these settings.
+if v:progname =~? "evim"
+  finish
+endif
+
+" Use Vim settings, rather than Vi settings (much better!).
+" This must be first, because it changes other options as a side effect.
+set nocompatible
+
+" Allow backspacing over everything in insert mode.
+set backspace=indent,eol,start
+
+set history=200                " keep 200 lines of command line history
+set ruler              " show the cursor position all the time
+set showcmd            " display incomplete commands
+set wildmenu           " display completion matches in a status line
+
+" Do incremental searching when it's possible to timeout.
+if has('reltime')
+  set incsearch
+endif
+
+" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it
+" confusing.
+set nrformats-=octal
+
+" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries.
+if has('win32')
+  set guioptions-=t
+endif
+
+" Don't use Ex mode, use Q for formatting.
+" Revert with ":unmap Q".
+map Q gq
+
+" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
+" so that you can undo CTRL-U after inserting a line break.
+" Revert with ":iunmap <C-U>".
+inoremap <C-U> <C-G>u<C-U>
+
+" In many terminal emulators the mouse works just fine.  By enabling it you
+" can position the cursor, Visually select and scroll with the mouse.
+if has('mouse')
+  set mouse=a
+endif
+
+" Switch syntax highlighting on when the terminal has colors or when using the
+" GUI (which always has colors).
+if &t_Co > 2 || has("gui_running")
+  " Revert with ":syntax off".
+  syntax on
+
+  " I like highlighting strings inside C comments.
+  " Revert with ":unlet c_comment_strings".
+  let c_comment_strings=1
+endif
+
+" Only do this part when compiled with support for autocommands.
+if has("autocmd")
+
+  " Enable file type detection.
+  " Use the default filetype settings, so that mail gets 'tw' set to 72,
+  " 'cindent' is on in C files, etc.
+  " Also load indent files, to automatically do language-dependent indenting.
+  " Revert with ":filetype off".
+  filetype plugin indent on
+
+  " Put these in an autocmd group, so that you can revert them with:
+  " ":augroup vimStartup | au! | augroup END"
+  augroup vimStartup
+    au!
+
+    " When editing a file, always jump to the last known cursor position.
+    " Don't do it when the position is invalid or when inside an event handler
+    " (happens when dropping a file on gvim).
+    autocmd BufReadPost *
+      \ if line("'\"") >= 1 && line("'\"") <= line("$") |
+      \   exe "normal! g`\"" |
+      \ endif
+
+  augroup END
+
+endif " has("autocmd")
+
+" Convenient command to see the difference between the current buffer and the
+" file it was loaded from, thus the changes you made.
+" Only define it when not defined already.
+" Revert with: ":delcommand DiffOrig".
+if !exists(":DiffOrig")
+  command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
+                 \ | wincmd p | diffthis
+endif
+
+if has('langmap') && exists('+langnoremap')
+  " Prevent that the langmap option applies to characters that result from a
+  " mapping.  If unset (default), this may break plugins (but it's backward
+  " compatible).
+  set langnoremap
+endif
index bfa806843d95a2335feea48de829342a648073da..680d85c5fe1135a7e9877a06fb8eb72e64e061cd 100644 (file)
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 7.4.  Last change: 2016 Jul 12
+*options.txt*  For Vim version 7.4.  Last change: 2016 Jul 28
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -887,7 +887,8 @@ A jump table for the options with a short description can be found at |Q_op|.
        done with ":syntax on".
 
                                                        *'backspace'* *'bs'*
-'backspace' 'bs'       string  (default "")
+'backspace' 'bs'       string  (default "", set to "indent,eol,start"
+                                                           in |defaults.vim|)
                        global
                        {not in Vi}
        Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
@@ -1696,7 +1697,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 
                        *'compatible'* *'cp'* *'nocompatible'* *'nocp'*
 'compatible' 'cp'      boolean (default on, off when a |vimrc| or |gvimrc|
-                                                               file is found)
+                                       file is found, reset in |defaults.vim|)
                        global
                        {not in Vi}
        This option has the effect of making Vim either more Vi-compatible, or
@@ -3725,8 +3726,10 @@ A jump table for the options with a short description can be found at |Q_op|.
        screen.
 
                                                *'guioptions'* *'go'*
-'guioptions' 'go'      string  (default "egmrLtT"   (MS-Windows),
-                                        "aegimrLtT" (GTK, Motif and Athena))
+'guioptions' 'go'      string  (default "egmrLtT"   (MS-Windows, "t" is
+                                                  removed in |defaults.vim|),
+                                        "aegimrLtT" (GTK, Motif and Athena),
+                                        )
                        global
                        {not in Vi}
                        {only available when compiled with GUI enabled}
@@ -4048,7 +4051,8 @@ A jump table for the options with a short description can be found at |Q_op|.
        NOTE: This option is reset when 'compatible' is set.
 
                                                *'history'* *'hi'*
-'history' 'hi'         number  (Vim default: 50, Vi default: 0)
+'history' 'hi'         number  (Vim default: 50, Vi default: 0,
+                                                set to 200 in |defaults.vim|)
                        global
                        {not in Vi}
        A history of ":" commands, and a history of previous search patterns
@@ -4300,7 +4304,8 @@ A jump table for the options with a short description can be found at |Q_op|.
        evaluating 'includeexpr' |textlock|.
 
                                 *'incsearch'* *'is'* *'noincsearch'* *'nois'*
-'incsearch' 'is'       boolean (default off)
+'incsearch' 'is'       boolean (default off, set in |defaults.vim| if the
+                                               +reltime feature is supported)
                        global
                        {not in Vi}
                        {not available when compiled without the
@@ -4684,7 +4689,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 <      Warning: This deletes all menus that you defined yourself!
 
                        *'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
-'langnoremap' 'lnr'    boolean (default off)
+'langnoremap' 'lnr'    boolean (default off, set in |defaults.vim|)
                        global
                        {not in Vi}
                        {only available when compiled with the |+langmap|
@@ -5150,7 +5155,8 @@ A jump table for the options with a short description can be found at |Q_op|.
        set and to the Vim default value when 'compatible' is reset.
 
                                                *'mouse'* *E538*
-'mouse'                        string  (default "", "a" for GUI, MS-DOS and Win32)
+'mouse'                        string  (default "", "a" for GUI, MS-DOS and Win32,
+                                                set to "a" in |defaults.vim|)
                        global
                        {not in Vi}
        Enable the use of the mouse.  Only works for certain terminals
@@ -5316,7 +5322,8 @@ A jump table for the options with a short description can be found at |Q_op|.
        Negative or zero value means no thread scheduling.
 
                                                        *'nrformats'* *'nf'*
-'nrformats' 'nf'       string  (default "bin,octal,hex")
+'nrformats' 'nf'       string  (default "bin,octal,hex",
+                                          set to "bin,hex" in |defaults.vim|)
                        local to buffer
                        {not in Vi}
        This defines what bases Vim will consider for numbers when using the
@@ -5986,7 +5993,7 @@ A jump table for the options with a short description can be found at |Q_op|.
        security reasons.
 
                                         *'ruler'* *'ru'* *'noruler'* *'noru'*
-'ruler' 'ru'           boolean (default off)
+'ruler' 'ru'           boolean (default off, set in |defaults.vim|)
                        global
                        {not in Vi}
                        {not available when compiled without the
@@ -6619,8 +6626,8 @@ A jump table for the options with a short description can be found at |Q_op|.
        "n" flag to 'cpoptions'.
 
                                     *'showcmd'* *'sc'* *'noshowcmd'* *'nosc'*
-'showcmd' 'sc'         boolean (Vim default: on, off for Unix, Vi default:
-                                off)
+'showcmd' 'sc'         boolean (Vim default: on, off for Unix,
+                                      Vi default: off, set in |defaults.vim|)
                        global
                        {not in Vi}
                        {not available when compiled without the
@@ -8377,7 +8384,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 
 
                                *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
-'wildmenu' 'wmnu'      boolean (default off)
+'wildmenu' 'wmnu'      boolean (default off, set in |defaults.vim|)
                        global
                        {not in Vi}
                        {not available if compiled without the |+wildmenu|
index b613cf0561e750a6d6d076ab087f7f6da189b0cc..256aaaddeca58f0540636246ba4c844f481069be 100644 (file)
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.4.  Last change: 2016 Jul 03
+*starting.txt*  For Vim version 7.4.  Last change: 2016 Jul 28
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -806,13 +806,13 @@ accordingly.  Vim proceeds in this order:
        For the Macintosh the $VIMRUNTIME/macmap.vim is read.
 
          *VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC*
-     c. Four places are searched for initializations.  The first that exists
+     c. Five places are searched for initializations.  The first that exists
        is used, the others are ignored.  The $MYVIMRC environment variable is
        set to the file that was first found, unless $MYVIMRC was already set
        and when using VIMINIT.
-       -  The environment variable VIMINIT (see also |compatible-default|) (*)
-          The value of $VIMINIT is used as an Ex command line.
-       -  The user vimrc file(s):
+         The environment variable VIMINIT (see also |compatible-default|) (*)
+           The value of $VIMINIT is used as an Ex command line.
+       II  The user vimrc file(s):
                    "$HOME/.vimrc"         (for Unix and OS/2) (*)
                    "$HOME/.vim/vimrc"     (for Unix and OS/2) (*)
                    "s:.vimrc"             (for Amiga) (*)
@@ -829,13 +829,14 @@ accordingly.  Vim proceeds in this order:
                Note: For MS-DOS and Win32, "$HOME" is checked first.  If no
                "_vimrc" or ".vimrc" is found there, "$VIM" is tried.
                See |$VIM| for when $VIM is not set.
-       -  The environment variable EXINIT.
-          The value of $EXINIT is used as an Ex command line.
-       -  The user exrc file(s).  Same as for the user vimrc file, but with
-          "vimrc" replaced by "exrc".  But only one of ".exrc" and "_exrc" is
-          used, depending on the system.  And without the (*)!
-       -  You would usually have "syntax on" and/or "filetype on" commands,
-          which trigger initializing filetype detection, see |syntax-loading|.
+       III The environment variable EXINIT.
+           The value of $EXINIT is used as an Ex command line.
+       IV  The user exrc file(s).  Same as for the user vimrc file, but with
+           "vimrc" replaced by "exrc".  But only one of ".exrc" and "_exrc" is
+           used, depending on the system.  And without the (*)!
+       V   The default vimrc file, $VIMRUNTIME/defaults.vim.  This sets up
+           options values and has "syntax on" and "filetype on" commands,
+           which is what most new users will want.  See |defaults.vim|.
 
      d. If the 'exrc' option is on (which is not the default), the current
        directory is searched for three files.  The first that exists is used,
@@ -912,6 +913,9 @@ accordingly.  Vim proceeds in this order:
        The |v:vim_did_enter| variable is set to 1.
        The |VimEnter| autocommands are executed.
 
+The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or
+gvimrc file.
+
 Some hints on using initializations:
 
 Standard setup:
@@ -958,16 +962,29 @@ problems if you have a file with only <NL>s and have a line like
 
                                                     *compatible-default*
 When Vim starts, the 'compatible' option is on.  This will be used when Vim
-starts its initializations.  But as soon as a user vimrc file is found, or a
-vimrc file in the current directory, or the "VIMINIT" environment variable is
-set, it will be set to 'nocompatible'.  This has the side effect of setting or
-resetting other options (see 'compatible').  But only the options that have
-not been set or reset will be changed.  This has the same effect like the
-value of 'compatible' had this value when starting Vim.  Note that this
-doesn't happen for the system-wide vimrc file nor when Vim was started with
-the |-u| command line argument.  It does also happen for gvimrc files.  The
-$MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or gvimrc
-file.
+starts its initializations.  But as soon as:
+- a user vimrc file is found, or
+- a vimrc file in the current directory, or
+- the "VIMINIT" environment variable is set, or
+- the "-N" command line argument is given, or
+  even when no vimrc file exists.
+- the |defaults.vim| script is loaded, or
+- gvimrc file was found,
+then it will be set to 'nocompatible'.
+
+Note that this does NOT happen when a system-wide vimrc file was found.
+
+This has the side effect of setting or resetting other options (see
+'compatible').  But only the options that have not been set or reset will be
+changed.  This has the same effect like the value of 'compatible' had this
+value when starting Vim.
+
+'compatible is NOT reset, and |defaults.vim| is not loaded:
+- when Vim was started with the |-u| command line argument, especially with
+  "-u NONE", or
+- when started with the |-C| command line argument, or
+- when the name of the executable ends in "ex". (This has been done to make
+  Vim behave like "ex", when it is started as "ex")
 
 But there is a side effect of setting or resetting 'compatible' at the moment
 a .vimrc file is found: Mappings are interpreted the moment they are
@@ -975,16 +992,24 @@ encountered.  This makes a difference when using things like "<CR>".  If the
 mappings depend on a certain value of 'compatible', set or reset it before
 giving the mapping.
 
-The above behavior can be overridden in these ways:
-- If the "-N" command line argument is given, 'nocompatible' will be used,
-  even when no vimrc file exists.
-- If the "-C" command line argument is given, 'compatible' will be used, even
-  when a vimrc file exists.
-- If the "-u {vimrc}" argument is used, 'compatible' will be used.
-- When the name of the executable ends in "ex", then this works like the "-C"
-  argument was given: 'compatible' will be used, even when a vimrc file
-  exists.  This has been done to make Vim behave like "ex", when it is started
-  as "ex".
+                                                       *defaults.vim*
+If Vim is started normally and no user vimrc file is found, the
+$VIMRUTIME/defaults.vim script is loaded.  This will set 'compatible' off,
+switch on syntax highlighting and a few more things.  See the script for
+details.  NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
+patch 7.4.2111 to be exact).
+
+This should work well for new Vim users.  If you create your own .vimrc, it is
+recommended to add this line somewhere near the top: >
+       source $VIMRUNTIME/defaults.vim
+Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
+is way to do this.  Alternatively, you can copy defaults.vim to your .vimrc
+and modify it.
+
+If you don't like some of the defaults, you can still source defaults.vim and
+revert individual settings.  See the defaults.vim file for hints on how to
+revert each item.
+
 
 Avoiding trojan horses:                                        *trojan-horse*
 While reading the "vimrc" or the "exrc" file in the current directory, some
index 650ce428d630fbd041c26b36677eabb5d834cf67..f80b3c03b627ab7adcc453cb82be1e649563922d 100644 (file)
@@ -1,6 +1,6 @@
 " Vim script for Evim key bindings
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Mar 29
+" Last Change: 2016 Jul 24
 
 " Don't use Vi-compatible mode.
 set nocompatible
@@ -63,4 +63,12 @@ if has("autocmd")
 
 endif " has("autocmd")
 
+" Add optional packages.
+"
+" The matchit plugin makes the % command work better, but it is not backwards
+" compatible.
+if has('syntax') && has('eval')
+  packadd matchit
+endif
+
 " vim: set sw=2 :
index 31580198335b95aadd9f570627ff0c97b699059e..7f5bae07260af3559e3c58d82bcae22bff74ebbb 100644 (file)
@@ -1,7 +1,7 @@
 " An example for a vimrc file.
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last change: 2016 Jun 21
+" Last change: 2016 Jul 28
 "
 " To use it, copy it to
 "     for Unix and OS/2:  ~/.vimrc
@@ -14,60 +14,26 @@ if v:progname =~? "evim"
   finish
 endif
 
-" Use Vim settings, rather than Vi settings (much better!).
-" This must be first, because it changes other options as a side effect.
-set nocompatible
-
-" allow backspacing over everything in insert mode
-set backspace=indent,eol,start
+" Get the defaults that most users want.
+source $VIMRUNTIME/defaults.vim
 
 if has("vms")
   set nobackup         " do not keep a backup file, use versions instead
 else
   set backup           " keep a backup file (restore to previous version)
-  set undofile         " keep an undo file (undo changes after closing)
-endif
-set history=50         " keep 50 lines of command line history
-set ruler              " show the cursor position all the time
-set showcmd            " display incomplete commands
-set incsearch          " do incremental searching
-
-" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
-" let &guioptions = substitute(&guioptions, "t", "", "g")
-
-" Don't use Ex mode, use Q for formatting
-map Q gq
-
-" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
-" so that you can undo CTRL-U after inserting a line break.
-inoremap <C-U> <C-G>u<C-U>
-
-" In many terminal emulators the mouse works just fine, thus enable it.
-if has('mouse')
-  set mouse=a
+  if has('persistent_undo')
+    set undofile       " keep an undo file (undo changes after closing)
+  endif
 endif
 
-" Switch syntax highlighting on when the terminal has colors or when using the
-" GUI (which always has colors).
 if &t_Co > 2 || has("gui_running")
-  syntax on
-
-  " Also switch on highlighting the last used search pattern.
+  " Switch on highlighting the last used search pattern.
   set hlsearch
-
-  " I like highlighting strings inside C comments.
-  let c_comment_strings=1
 endif
 
 " Only do this part when compiled with support for autocommands.
 if has("autocmd")
 
-  " Enable file type detection.
-  " Use the default filetype settings, so that mail gets 'tw' set to 72,
-  " 'cindent' is on in C files, etc.
-  " Also load indent files, to automatically do language-dependent indenting.
-  filetype plugin indent on
-
   " Put these in an autocmd group, so that we can delete them easily.
   augroup vimrcEx
   au!
@@ -75,14 +41,6 @@ if has("autocmd")
   " For all text files set 'textwidth' to 78 characters.
   autocmd FileType text setlocal textwidth=78
 
-  " When editing a file, always jump to the last known cursor position.
-  " Don't do it when the position is invalid or when inside an event handler
-  " (happens when dropping a file on gvim).
-  autocmd BufReadPost *
-    \ if line("'\"") >= 1 && line("'\"") <= line("$") |
-    \   exe "normal! g`\"" |
-    \ endif
-
   augroup END
 
 else
@@ -91,22 +49,6 @@ else
 
 endif " has("autocmd")
 
-" Convenient command to see the difference between the current buffer and the
-" file it was loaded from, thus the changes you made.
-" Only define it when not defined already.
-if !exists(":DiffOrig")
-  command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
-                 \ | wincmd p | diffthis
-endif
-
-if has('langmap') && exists('+langnoremap')
-  " Prevent that the langmap option applies to characters that result from a
-  " mapping.  If unset (default), this may break plugins (but it's backward
-  " compatible).
-  set langnoremap
-endif
-
-
 " Add optional packages.
 "
 " The matchit plugin makes the % command work better, but it is not backwards
index 001f87a3f19d3734623a0073e0a7444880d8c837..ea28eb715d19cd19a9e704ff98ef7d70ecece1a5 100644 (file)
@@ -1071,7 +1071,8 @@ SCRIPTLOC = $(VIMRTLOC)
 ### the runtime directory is not below it.
 #VIMRUNTIMEDIR = $(VIMRTLOC)
 
-### Name of the evim file target.
+### Name of the defaults/evim/mswin file target.
+VIM_DEFAULTS_FILE = $(DESTDIR)$(SCRIPTLOC)/defaults.vim
 EVIM_FILE      = $(DESTDIR)$(SCRIPTLOC)/evim.vim
 MSWIN_FILE     = $(DESTDIR)$(SCRIPTLOC)/mswin.vim
 
@@ -2240,11 +2241,13 @@ installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(DEST_RT) \
        chmod $(VIMSCRIPTMOD) $(SYS_SYNMENU_FILE)
        $(INSTALL_DATA) $(SCRIPTSOURCE)/delmenu.vim $(SYS_DELMENU_FILE)
        chmod $(VIMSCRIPTMOD) $(SYS_DELMENU_FILE)
-# install the evim file
-       $(INSTALL_DATA) $(SCRIPTSOURCE)/mswin.vim $(MSWIN_FILE)
-       chmod $(VIMSCRIPTMOD) $(MSWIN_FILE)
+# install the defaults/evim/mswin file
+       $(INSTALL_DATA) $(SCRIPTSOURCE)/defaults.vim $(VIM_DEFAULTS_FILE)
+       chmod $(VIMSCRIPTMOD) $(VIM_DEFAULTS_FILE)
        $(INSTALL_DATA) $(SCRIPTSOURCE)/evim.vim $(EVIM_FILE)
        chmod $(VIMSCRIPTMOD) $(EVIM_FILE)
+       $(INSTALL_DATA) $(SCRIPTSOURCE)/mswin.vim $(MSWIN_FILE)
+       chmod $(VIMSCRIPTMOD) $(MSWIN_FILE)
 # install the rgb.txt file
        $(INSTALL_DATA) $(SCRIPTSOURCE)/rgb.txt $(SYS_RGB_FILE)
        chmod $(VIMSCRIPTMOD) $(SYS_RGB_FILE)
@@ -2612,7 +2615,7 @@ uninstall_runtime:
        -rm -f $(DEST_HELP)/*.??x $(DEST_HELP)/tags-??
        -rm -f $(SYS_RGB_FILE)
        -rm -f $(SYS_MENU_FILE) $(SYS_SYNMENU_FILE) $(SYS_DELMENU_FILE)
-       -rm -f $(SYS_BUGR_FILE) $(EVIM_FILE) $(MSWIN_FILE)
+       -rm -f $(SYS_BUGR_FILE) $(VIM_DEFAULTS_FILE) $(EVIM_FILE) $(MSWIN_FILE)
        -rm -f $(DEST_SCRIPT)/gvimrc_example.vim $(DEST_SCRIPT)/vimrc_example.vim
        -rm -f $(SYS_FILETYPE_FILE) $(SYS_FTOFF_FILE) $(SYS_SCRIPTS_FILE)
        -rm -f $(SYS_INDOFF_FILE) $(SYS_INDENT_FILE)
index 9dc7dc28926e6d46addf64d3b2e20dd8d7e03bde..1b1f3452e332719faa777a2bddcc22fcef61fb0d 100644 (file)
 /* #define USR_VIMRC_FILE2     "~/bar/.vimrc" */
 /* #define USR_VIMRC_FILE3     "$VIM/.vimrc" */
 
+/*
+ * VIM_DEFAULTS_FILE   Name of the defaults.vim script file
+ */
+/* #define VIM_DEFAULTS_FILE   "$VIMRUNTIME/defaults.vim" */
+
 /*
  * EVIM_FILE           Name of the evim.vim script file
  */
index 926b8ab909030edaf0401a7e6ce709ee373ef555..f24bda2387f6b58027c346bce66d246365434b1d 100644 (file)
@@ -2997,11 +2997,14 @@ source_startup_scripts(mparm_T *parmp)
                                                           DOSO_VIMRC) == FAIL
 #endif
                && process_env((char_u *)"EXINIT", FALSE) == FAIL
-               && do_source((char_u *)USR_EXRC_FILE, FALSE, DOSO_NONE) == FAIL)
-           {
+               && do_source((char_u *)USR_EXRC_FILE, FALSE, DOSO_NONE) == FAIL
 #ifdef USR_EXRC_FILE2
-               (void)do_source((char_u *)USR_EXRC_FILE2, FALSE, DOSO_NONE);
+               && do_source((char_u *)USR_EXRC_FILE2, FALSE, DOSO_NONE) == FAIL
 #endif
+               )
+           {
+               /* When no .vimrc file was found: source defaults.vim. */
+               do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE);
            }
        }
 
@@ -3009,7 +3012,7 @@ source_startup_scripts(mparm_T *parmp)
         * Read initialization commands from ".vimrc" or ".exrc" in current
         * directory.  This is only done if the 'exrc' option is set.
         * Because of security reasons we disallow shell and write commands
-        * now, except for unix if the file is owned by the user or 'secure'
+        * now, except for Unix if the file is owned by the user or 'secure'
         * option has been reset in environment of global ".exrc" or ".vimrc".
         * Only do this if VIMRC_FILE is not the same as USR_VIMRC_FILE or
         * SYS_VIMRC_FILE.
index c179b6f43735d91273855e04b46680678cb084ae..6e922790d8ad0d5bd36777be2c3db6b6ae40ebc6 100644 (file)
@@ -160,6 +160,9 @@ typedef long off_t;
 #ifndef USR_VIMRC_FILE4
 # define USR_VIMRC_FILE4 "$VIM/.vimrc"
 #endif
+#ifndef VIM_DEFAULTS_FILE
+# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
+#endif
 #ifndef EVIM_FILE
 # define EVIM_FILE     "$VIMRUNTIME/evim.vim"
 #endif
index 19748c496348ee188470a3e5bcb7767bba140ddf..9e8cd7c4a8280bbfbca96c94bf6147eab85ac946 100644 (file)
@@ -25,6 +25,9 @@
 #ifndef USR_VIMRC_FILE3
 # define USR_VIMRC_FILE3       "$VIM\\_vimrc"
 #endif
+#ifndef VIM_DEFAULTS_FILE
+# define VIM_DEFAULTS_FILE     "$VIMRUNTIME\\defaults.vim"
+#endif
 #ifndef EVIM_FILE
 # define EVIM_FILE             "$VIMRUNTIME\\evim.vim"
 #endif
index c13a30158c0cddc19bdc63a726c3b86e0fb963a1..28627f3306b6af3f1f4b0891e8637d31486e0ded 100644 (file)
 #ifndef SYS_OPTWIN_FILE
 #  define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim"
 #endif
+#ifndef VIM_DEFAULTS_FILE
+#  define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
+#endif
 #ifndef EVIM_FILE
 #  define EVIM_FILE    "$VIMRUNTIME/evim.vim"
 #endif
index b835df657f553256cb11621adf43905d7bac6c31..4b3a3f10d2bf55e810205a7b46ea06fcc27974ea 100644 (file)
@@ -303,6 +303,10 @@ typedef struct dsc$descriptor   DESC;
 # endif
 #endif
 
+#ifndef VIM_DEFAULTS_FILE
+# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
+#endif
+
 #ifndef EVIM_FILE
 # define EVIM_FILE     "$VIMRUNTIME/evim.vim"
 #endif
index 8bb9d9d074bf80c4de97ee50b1773ce31f848383..d5912dc23a3bfe4304d7a6bc1c52dae18b9bc7b5 100644 (file)
@@ -758,6 +758,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2111,
 /**/
     2110,
 /**/
@@ -5349,6 +5351,9 @@ list_version(void)
     version_msg("\"\n");
 # endif
 #endif
+    version_msg(_("       defaults file: \""));
+    version_msg(VIM_DEFAULTS_FILE);
+    version_msg("\"\n");
 #ifdef FEAT_GUI
 # ifdef SYS_MENU_FILE
     version_msg(_("    system menu file: \""));