- Yes. Although I don't understand why you are using a vimrc.d directory and :runtime in your vimrc instead of just dropping your files into your plugin directory and letting Vim do the :runtime automatically.
- Autoloaded plugins are typically partitioned into two files: an interface-code file that goes into the plugin directory and an execution-code file that goes into the autoload directory. The interface-code file is always loaded and should be lean. It typically contains commands and/or macros that call functions defined in the execution-code file. The execution-code file is not loaded until one of the objects it defines (e.g., function or variable) is accessed and has not yet been defined. If you runtime the autoload/execution-code files from your vimrc, you've defeated the purpose of autoloaded files.
You need to put the autoloaded files into an autoload directory that is a subdirectory of one of the components of your 'runtimepath'. If you don't want to use the standard ~/.vimrc/autoload (on Unix) or ~/vimfiles/autoload (on Windows) directory, you'll have to make sure the parent directory of your autload directory is in 'runtimepath'.
Then it doesn't really matter whether you:
- Do as you have been and put the interface-code files in your vimrc.d directory and runtime them yourself from your vimrc;
- Add your vimrc.d directory to your 'runtimepath', move the interface-code files to a new subdirectory, vimrc.d/plugin, and let Vim runtime them for you; or
- Just put your interface-code files in the standard ~/.vim/plugin or ~/vimfiles/plugin directory and dispense with the vimrc.d and the :runtime path in your vimrc.
If you really want to keep your stuff out of the standard places and together in one directory, I suppose you could do this (assuming Unix for convenience).
- Create two new directories, ~/.vim/vimrc.d/autoload and ~/.vim/vimrc.d/plugin.
- Split your existing scripts into the interface-code and execution-code parts and put them into those directories, leaving no script files in ~/.vim/vimrc.d.
- Remove the :runtime from your vimrc.
In your vimrc, add ~/.vim/vimrc.d to your 'runtimepath' like this:
For reference, autoloaded scripts are discussed in