Change default location of vimrc

Vim

Vim Problem Overview


In Vim, is it possible to change the default location of the user vimrc file, i.e., from $HOME/.vimrc to some other location ?

Vim Solutions


Solution 1 - Vim

Another solution might be to create a symlink to you preferred location. I have my .vimrc in $HOME/.vim/.vimrc and symlink to it. This way I can have it in a git repo and backup it.

Solution 2 - Vim

You must start vim with the command vim -u ./path/to/your/vimrcfile

vim -u NONE is a good way to start Vim without any plugin or customisation.

See :help starting.txt for more information.

Solution 3 - Vim

The VIMINIT variable is my preferred method. The problem with aliasing vim with the -u flag is that if vim is opened in some way other than from the shell command your configuration won't get pulled in. Setting $VIMINIT does not suffer from this drawback. Check this out for more information.

export VIMINIT='source $MYVIMRC'
export MYVIMRC='~/.vim/vimrc'  #or any other location you want

Note that Vim normally sets the MYVIMRC variable, though I'm not sure exactly what it's used for. Based on my testing, using VIMINIT in this fashion will result in it not being automatically set on startup as it would normally be. This is why I'm setting it myself.

This works for neovim too!

Solution 4 - Vim

On Windows, I have the _vimrc that's in my home directory contain one line, source c:\path\to\my.vimrc.

I have not yet worked out a good way to move the entirety of my vimfiles folder, but that's less critical as it's all stuff I've installed from elsewhere. I.e., it'd be easy to restore if I lost it. (I know that I can change runtimepath but my problem is more coming up with a "good" way to do so.)

Update

After six years I extended slightly from what I mention in the comments below; as I put stuff into 'after' and wanted to just keep rtp clean I got something that has been solid for a while now. Today in my %USERPROFILE%\_vimrc I do hardcode the actual paths to things and it changes on every machine I use (and I basically do the same thing on *nix) but this gets copied around mostly-manually when setting up a new PC. I also have a version which I can use to launch Vim on another connected machine on the network, e.g. a co-worker's machine, so I get my config and all that, but the gist is:

set runtimepath^=E:/dotfiles/vim
set runtimepath+=E:/dotfiles/vim/after
set runtimepath-=~/vimfiles
set runtimepath-=~/vimfiles/after
runtime vimrc

and then %USERPROFILE%\_gvimrc just has one line:

runtime gvimrc

(Both vimrc and gvimrc are in the /dotfiles/vim folder and also on Bitbucket.)

Solution 5 - Vim

I see two options, depending on your needs.

  1. Have ~/.vimrc import the other location
  2. create an alias in your bashrc alias vim="vim -u otherlocation"

Solution 6 - Vim

I edited

C:\Program Files\Vim\_vimrc

and changed both the runtimepath and sourced my own .vimrc.

I also use these settings in Cygwin (and have them version controlled). So it's this in practice (added at the bottom of the _vimrc file):

let &runtimepath = 'C:\cygwin\home\cygwinaccount\.vim,' . &runtimepath
source C:\cygwin\home\cygwinaccount\.vimrc

Bliss ! :)

Solution 7 - Vim

I feel like the simplest solution is to just have a single line in ~/.vimrc that loads the vimrc from the other location, i.e.:

source PATH/TO/OTHER/LOCATION/.vimrc

Solution 8 - Vim

In linux: You can edit .bashrc or .zshrc startup script and add the following lines to change the default location of .vimrc file

export VIMINIT='source $MYVIMRC'
export MYVIMRC='~/.vim/.vimrc'  # Note the . (dot) before vimrc. If that is what you have called it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionVivekView Question on Stackoverflow
Solution 1 - VimTamás SzeleiView Answer on Stackoverflow
Solution 2 - VimXavier T.View Answer on Stackoverflow
Solution 3 - VimFloegipokyView Answer on Stackoverflow
Solution 4 - Vimdash-tom-bangView Answer on Stackoverflow
Solution 5 - VimmorgajelView Answer on Stackoverflow
Solution 6 - VimhoplaView Answer on Stackoverflow
Solution 7 - VimomnesiaView Answer on Stackoverflow
Solution 8 - VimStrykerView Answer on Stackoverflow