Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For my .bashrc I have a lot of small snippet files in .config/bash, like 10-prompt.sh and so on. In my actual .bashrc, I just have the following:

configdir="$HOME/.config/bash"

for file in "$configdir"/*.sh
do
        source "$file"
done

I'd like to do the same for my .vimrc, but I am not that confident in VimL that I could write that.

How would the snippet for .vimrc look like that includes all the snippets in a given subfolder? Ideally, I'd like to make a .vim/rc/ folder where I can put my snippets into.

share|improve this question
up vote 1 down vote accepted

EDIT

This is @queueoverflow's shorter version:

for rcfile in split(globpath("~/.vim/rc", "*.vim"), '\n') 
    execute('source '.rcfile)
endfor

ENDEDIT

EDIT

(removed my stupid answer)

The function below seems to work.

function! SourceMyScripts()
  let file_list = split(globpath("~/.vim/rc", "*.vim"), '\n')

  for file in file_list
    execute( 'source '.file )
  endfor
endfunction

Add it to your ~/.vimrc like that:

call SourceMyScripts()

ENDEDIT

share|improve this answer
    
That does not do anything :-/ – Martin Ueding Jun 18 '12 at 10:01
    
Yes, that's an horribly stupid answer. – romainl Jun 18 '12 at 11:51
    
So? Do you know the correct answer or what I did wrong then? – Martin Ueding Jun 18 '12 at 12:47
    
No, my answer was very stupid. I'm currently trying my hands at a solution. I'm not a vimscript wizard, though. – romainl Jun 18 '12 at 12:48
    
Thank you for trying! Currently, I just made cat ~/.vim/rc/*.vim > ~/.vimrc as a workaround, but if Vim was able to do this automatically, that would be even cooler! – Martin Ueding Jun 18 '12 at 12:51

A very easy way to do this is ":runtime rc/*.vim". Of course, this would iterate over each "rc" subdirectory that might exist in each of the directories in 'runtimepath', but I doubt that will be a problem.

See:

:help :runtime
:help 'runtimepath'
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .