You have a few options, though some depend on plugin-authors to follow best-practices.
vim --noplugin
is kind of a nuclear option. You can combine with -Nu NONE
or other -u
options to get varying levels of "just my config" (though, if you put config files in ~/.vim/plugin/
like me, this will disable those too)
let g:loaded_<plugin> = 1
: most plugin scripts (though not all pieces of all plugins) have an include guard that stops them from executing if a special variable is already set. Have a look at the first 5 lines of code of any file you want to disable to see if you can do this. (I do it to disable certain vim-distributed plugins in my vimrc, which is generally the best place to add this; you could also do it via --cmd
).
- Delete (or move) the offending file so it can't be found by vim—this will likely break things quickly, but it will cause the scripts not to get executed
Unfortunately, it's a lot harder to do this mid-session. In almost all cases, you need to do some work on vim-startup to avoid loading a file—plugin
files are sourced on startup. Autoloaded files and many other things (e.g., colorscheme files, compiler files, ftplugin files) are sourced on-demand; some of them, you can move at any time to temporarily disable them. Others, like autoload, you can only "move-to-disable" if you haven't yet triggered a function from that file.
If you really want to muck about with files like this, I recommend giving :help startup
a good long read.
In some cases, :debug
can be a better fit for tracking down a bug.
In many cases, :help profile
can help you find out where performance issues are.