mirror of
https://github.com/neovim/neovim.git
synced 2026-03-05 08:37:14 +00:00
runtime: don't execute external commands when loading ftplugins
This is a followup to 816fbcc262687b81fc46f82f7bbeb1453addfe0c (patch
9.0.1833: [security] runtime file fixes)
It basically disables that external commands are run on loading of the
filetype plugin, **unless** the user has set the `g:plugin_exec = 1`
global variable in their configuration or for a specific filetype the
variable g:<filetype>_exec=1.
There are a few more plugins, that may execute system commands like
debchangelog, gitcommit, sh, racket, zsh, ps1 but those do at least
do not run those commands by default during loading of the filetype plugin
(there the command is mostly run as convenience for auto-completion or
to provide documentation lookup).
closes: vim/vim#13034
f7ac0ef509
Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Tim Pope <vim@tpope.org>
The ftplugin directory is for Vim plugin scripts that are only used for a specific filetype. All files ending in .vim in this directory and subdirectories will be sourced by Vim when it detects the filetype that matches the name of the file or subdirectory. For example, these are all loaded for the "c" filetype: c.vim c_extra.vim c/settings.vim Note that the "_" in "c_extra.vim" is required to separate the filetype name from the following arbitrary name. The filetype plugins are only loaded when the ":filetype plugin" command has been used. The default filetype plugin files contain settings that 95% of the users will want to use. They do not contain personal preferences, like the value of 'shiftwidth'. If you want to do additional settings, or overrule the default filetype plugin, you can create your own plugin file. See ":help ftplugin" in Vim.