205

I recently installed vim on Windows 7 as a stand-alone binary.

Where should I put my .vimrc file?

3

8 Answers 8

231

From the Vim Wiki.

In Vim, your home directory is specified with $HOME. On Unix systems, this is your ~ directory. On Windows systems, the best way to find the value of $HOME is from within Vim, as follows. These commands are useful to see what directories your Vim is using:

:version
:echo expand('~')
:echo $HOME
:echo $VIM
:echo $VIMRUNTIME

Once you determine the HOME variable put the vimrc file within that directory.

If you would like to change your HOME variable, set HOME as an environment variable for either the system or user.

Computer > Properties > Advanced System Settings > Advanced > Environment Variables > User | System Variables.

Windows (both Native and Cygwin*) will use _gvimrc, .gvimrc, _vimrc and .vimrc in that order of priority. The gvim* files will be checked with the gvim process, while the console vim will only check the vim* files.

*: verified against vim 7.2 and 7.3

4
  • 3
    (For those like me, who only use Windows when forced to): remember to enable showing file extensions. "_gvimrc.txt" etc. doesn't work. ;) Commented Dec 11, 2014 at 17:02
  • To have HOME match the behavior of Unix systems, I'd create a global environmental variable of %USERPROFILE% if that's not already done.
    – Pluto
    Commented Aug 25, 2015 at 21:02
  • 1
    It is good to look in each directory listed in the answer because my _vimrc is in $ VIM. Although, the _vimrc is read only file.
    – Cloud Cho
    Commented Jun 18, 2021 at 18:30
  • Setting HOME in the user environment variables did the trick. Thanks :)
    – wedesoft
    Commented Mar 29, 2023 at 9:54
28

For Vim 7.4, these are the paths it looks for on Windows

   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
  system gvimrc file: "$VIM\gvimrc"
    user gvimrc file: "$HOME\_gvimrc"
2nd user gvimrc file: "$HOME\vimfiles\gvimrc"
3rd user gvimrc file: "$VIM\_gvimrc"
    system menu file: "$VIMRUNTIME\menu.vim"

As Darren Hall said, use these commands to find out the values of $VIM and $HOME.

:echo $HOME
:echo $VIM

For example, one good place for gvim-specific settings would be

C:\Users\MyUsername\_gvimrc
6

Easiest way I found is to simply echo the location of the vimrc file currently in use - you can then replace with your own custom version.

:echo $MYVIMRC
5

If you need to find out just from a .bat file first look in the %HOME% directory. If that is not defined then vim/gvim looks in the path defined by concatenating %HOMEDRIVE% and %HOMEPATH%.

1

That is actually a good question because after installation (oddly enough) you get a _vimrc file under "Program Files" - which is not a good place for configuration files.

Put it under

%USERPROFILE%\vimfiles\_vimrc

This way it will be picked up instead of the configuration file put by the installation.

1
  • When I run :version from VIM, the two options that appear (most similar to what your answer is) are: "$HOME\_vimrc" and "$HOME\vimfiles\vimrc", but not _vimrc within the vimfiles folder.
    – CJBS
    Commented Jun 22, 2020 at 21:17
0

I found that vim-tux installed via Chocolatey can see .vimrc files only under C:\Users\MyUsername\vimfiles though :version tells that C:\Users\MyUsername also included.

0

I find that when I open gvim from Windows file explorer, $HOME is set to c:\Users\myname but when launched from my Cygwin file explorer it is set to /cygwin/home/myname. This is good because it lets me put slightly different settings in each one. To keep things separate and make backup easier, the Windows one is called _vimrc and the Cygwin one is called .vimrc.

0

I found it in ( windows 10 )

\tools\vim\_vimrc

You must log in to answer this question.

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