Question: I'd like to modify my `.vimrc` to read the value of a variable from an external file. How can I do this?

Specifically, a friend and I share a git repo with our `.vim` files, but there are a few small differences in what we want in our configs. So most of the file is common, but we use if statements to determine whether to load user-specific sections, like this:

```
let whoami = "user2"
if whoami == "user1"
...

```

After checking our common `.vimrc` out of source control, we each have to change the `let whoami` assignment so our own section will be loaded. Instead, I'd like to keep a separate file, which can be different for each of us, and from which vim will load that variable value.

Maybe another angle on this is: **Will vim automatically read all the files in my `.vim` directory?** If so, we could each put a symlink in there called username.vim, and link that to an external file that would be different for each of us.

Answer: 
in your main .vimrc file:

```
source otherVimScriptFilePath.vim

```

then just put your variable statement in that file:

```
" otherVimScriptFilePath.vim
let whoami = "user1"

```
I'm not sure what your vimrc looks like so this may not be feasible, but if there are large parts that you and your friend share, you might want to break them up into separate plugins. You can add files to the `~/.vim/plugin` directory to have them loaded on startup. (They're loaded in alphabetical order -- use `:scriptnames` to check.)

That way you can each have a vimrc that's completely unique, but all of your common configuration are in plugins. If you break them up logically, then it makes it easy to share with others too.