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
- 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.