defaults: Enable syntax and filetype plugins.

This commit is contained in:
Felipe Morales 2015-05-16 04:10:38 -03:00 committed by Justin M. Keyes
parent 75f6817a51
commit 50e129f5a7
5 changed files with 63 additions and 15 deletions

View File

@ -315,7 +315,8 @@ argument.
When {vimrc} is equal to "NONE" (all uppercase), all When {vimrc} is equal to "NONE" (all uppercase), all
initializations from files and environment variables are initializations from files and environment variables are
skipped, including reading the |ginit.vim| file when the GUI skipped, including reading the |ginit.vim| file when the GUI
starts. Loading plugins is also skipped. starts. Loading plugins and enabling syntax highlighting are
also skipped.
When {vimrc} is equal to "NORC" (all uppercase), this has the When {vimrc} is equal to "NORC" (all uppercase), this has the
same effect as "NONE", but loading plugins is not skipped. same effect as "NONE", but loading plugins is not skipped.
@ -391,7 +392,8 @@ accordingly. Vim proceeds in this order:
All following initializations until 4. are skipped. $MYVIMRC is not All following initializations until 4. are skipped. $MYVIMRC is not
set. set.
"vim -u NORC" can be used to skip these initializations without "vim -u NORC" can be used to skip these initializations without
reading a file. "vim -u NONE" also skips loading plugins. |-u| reading a file. "vim -u NONE" also skips loading plugins and enabling
syntax highlighting. |-u|
If Vim was started in Ex mode with the "-s" argument, all following If Vim was started in Ex mode with the "-s" argument, all following
initializations until 4. are skipped. Only the "-u" option is initializations until 4. are skipped. Only the "-u" option is
@ -424,7 +426,19 @@ accordingly. Vim proceeds in this order:
- The file ".exrc" (for Unix) - The file ".exrc" (for Unix)
"_exrc" (for Win32) "_exrc" (for Win32)
4. Load the plugin scripts. *load-plugins* 4. Enable syntax highlighting.
This does the same as the command: >
:runtime! syntax/syntax.vim
< This can be skipped with the "-u NONE" command line argument.
5. Enable filetype and indent plugins.
This does the same as the commands: >
:runtime! filetype.vim
:runtime! ftplugin.vim
:runtime! indent.vim
< This can be skipped with the "-u NONE" command line argument.
6. Load the plugin scripts. *load-plugins*
This does the same as the command: > This does the same as the command: >
:runtime! plugin/**/*.vim :runtime! plugin/**/*.vim
< The result is that all directories in the 'runtimepath' option will be < The result is that all directories in the 'runtimepath' option will be
@ -440,31 +454,30 @@ accordingly. Vim proceeds in this order:
commands from the command line have not been executed yet. You can commands from the command line have not been executed yet. You can
use "--cmd 'set noloadplugins'" |--cmd|. use "--cmd 'set noloadplugins'" |--cmd|.
5. Set 'shellpipe' and 'shellredir' 7. Set 'shellpipe' and 'shellredir'
The 'shellpipe' and 'shellredir' options are set according to the The 'shellpipe' and 'shellredir' options are set according to the
value of the 'shell' option, unless they have been set before. value of the 'shell' option, unless they have been set before.
This means that Vim will figure out the values of 'shellpipe' and This means that Vim will figure out the values of 'shellpipe' and
'shellredir' for you, unless you have set them yourself. 'shellredir' for you, unless you have set them yourself.
6. Set 'updatecount' to zero, if "-n" command argument used 8. Set 'updatecount' to zero, if "-n" command argument used
7. Set binary options 9. Set binary options
If the "-b" flag was given to Vim, the options for binary editing will If the "-b" flag was given to Vim, the options for binary editing will
be set now. See |-b|. be set now. See |-b|.
8. Perform GUI initializations 10. Perform GUI initializations
Only when starting "gvim", the GUI initializations will be done. See Only when starting "gvim", the GUI initializations will be done. See
|gui-init|. |gui-init|.
9. Read the ShaDa file 11. Read the ShaDa file
If the 'shada' option is not empty, the ShaDa file is read. See See |shada-file|.
|shada-file|.
10. Read the quickfix file 12. Read the quickfix file
If the "-q" flag was given to Vim, the quickfix file is read. If this If the "-q" flag was given to Vim, the quickfix file is read. If this
fails, Vim exits. fails, Vim exits.
11. Open all windows 13. Open all windows
When the |-o| flag was given, windows will be opened (but not When the |-o| flag was given, windows will be opened (but not
displayed yet). displayed yet).
When the |-p| flag was given, tab pages will be created (but not When the |-p| flag was given, tab pages will be created (but not
@ -473,7 +486,7 @@ accordingly. Vim proceeds in this order:
If the "-q" flag was given to Vim, the first error is jumped to. If the "-q" flag was given to Vim, the first error is jumped to.
Buffers for all windows will be loaded. Buffers for all windows will be loaded.
12. Execute startup commands 14. Execute startup commands
If a "-t" flag was given to Vim, the tag is jumped to. If a "-t" flag was given to Vim, the tag is jumped to.
The commands given with the |-c| and |+cmd| arguments are executed. The commands given with the |-c| and |+cmd| arguments are executed.
The starting flag is reset, has("vim_starting") will now return zero. The starting flag is reset, has("vim_starting") will now return zero.

View File

@ -11,7 +11,7 @@ the "{Nvim}" tag. This document is a complete and centralized list of all
these differences. these differences.
1. Configuration |nvim-configuration| 1. Configuration |nvim-configuration|
2. Option defaults |nvim-option-defaults| 2. Defaults |nvim-defaults|
3. Changed features |nvim-features-changed| 3. Changed features |nvim-features-changed|
4. New features |nvim-features-new| 4. New features |nvim-features-new|
5. Missing legacy features |nvim-features-missing| 5. Missing legacy features |nvim-features-missing|
@ -28,7 +28,12 @@ these differences.
session information. session information.
============================================================================== ==============================================================================
2. Option defaults *nvim-option-defaults* 2. Defaults *nvim-defaults*
- Syntax highlighting is enabled by default
- Filetype-related plugins and scripts are enabled by default
Note: these defaults can be disabled with the "-u NONE" command line
argument. |-u|
- 'autoindent' is set by default - 'autoindent' is set by default
- 'autoread' is set by default - 'autoread' is set by default

View File

@ -9299,6 +9299,24 @@ static void ex_filetype(exarg_T *eap)
EMSG2(_(e_invarg2), arg); EMSG2(_(e_invarg2), arg);
} }
/// Same as :filetype plugin indent enable
/// Updates the state used for :filetype without args.
void force_enable_filetype(void)
{
if (!filetype_detect) {
source_runtime((char_u *)FILETYPE_FILE, true);
filetype_detect = true;
}
if (!filetype_plugin) {
source_runtime((char_u *)FTPLUGIN_FILE, true);
filetype_plugin = true;
}
if (!filetype_indent) {
source_runtime((char_u *)INDENT_FILE, true);
filetype_indent = true;
}
}
/* /*
* ":setfiletype {name}" * ":setfiletype {name}"
*/ */

View File

@ -92,6 +92,10 @@
# define SYNTAX_FNAME "$VIMRUNTIME" _PATHSEPSTR "syntax" _PATHSEPSTR "%s.vim" # define SYNTAX_FNAME "$VIMRUNTIME" _PATHSEPSTR "syntax" _PATHSEPSTR "%s.vim"
#endif #endif
#ifndef SYNTAX_FILE
# define SYNTAX_FILE "$VIMRUNTIME" _PATHSEPSTR "syntax" _PATHSEPSTR "syntax.vim"
#endif
#ifndef EXRC_FILE #ifndef EXRC_FILE
# define EXRC_FILE ".exrc" # define EXRC_FILE ".exrc"
#endif #endif

View File

@ -332,6 +332,14 @@ int main(int argc, char **argv)
/* Source startup scripts. */ /* Source startup scripts. */
source_startup_scripts(&params); source_startup_scripts(&params);
// If using the runtime (-u is not NONE), enable syntax and filetype plugins
if (params.use_vimrc != NULL && strcmp(params.use_vimrc, "NONE") != 0) {
// Do this before syntax/syntax.vim (which calls `:filetype on`).
force_enable_filetype();
// Enable syntax highlighting.
do_source((char_u *)SYNTAX_FILE, false, DOSO_NONE);
}
/* /*
* Read all the plugin files. * Read all the plugin files.
* Only when compiled with +eval, since most plugins need it. * Only when compiled with +eval, since most plugins need it.