patch 7.4.2111
Problem: Defaults are very conservative.
Solution: Move settings from vimrc_example.vim to defaults.vim. Load
defaults.vim if no .vimrc was found.
diff --git a/src/Makefile b/src/Makefile
index 001f87a..ea28eb7 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1071,7 +1071,8 @@
### 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 @@
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 @@
-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)
diff --git a/src/feature.h b/src/feature.h
index 9dc7dc2..1b1f345 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -906,6 +906,11 @@
/* #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
*/
/* #define EVIM_FILE "$VIMRUNTIME/evim.vim" */
diff --git a/src/main.c b/src/main.c
index 926b8ab..f24bda2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2997,11 +2997,14 @@
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 @@
* 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.
diff --git a/src/os_amiga.h b/src/os_amiga.h
index c179b6f..6e92279 100644
--- a/src/os_amiga.h
+++ b/src/os_amiga.h
@@ -160,6 +160,9 @@
#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
diff --git a/src/os_dos.h b/src/os_dos.h
index 19748c4..9e8cd7c 100644
--- a/src/os_dos.h
+++ b/src/os_dos.h
@@ -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
diff --git a/src/os_mac.h b/src/os_mac.h
index c13a301..28627f3 100644
--- a/src/os_mac.h
+++ b/src/os_mac.h
@@ -139,6 +139,9 @@
#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
diff --git a/src/os_unix.h b/src/os_unix.h
index b835df6..4b3a3f1 100644
--- a/src/os_unix.h
+++ b/src/os_unix.h
@@ -303,6 +303,10 @@
# endif
#endif
+#ifndef VIM_DEFAULTS_FILE
+# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
+#endif
+
#ifndef EVIM_FILE
# define EVIM_FILE "$VIMRUNTIME/evim.vim"
#endif
diff --git a/src/version.c b/src/version.c
index 8bb9d9d..d5912dc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2111,
+/**/
2110,
/**/
2109,
@@ -5349,6 +5351,9 @@
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: \""));