vim

How to get Vim run time path outside of vim


I want to make a script which will quickly replace the .vimrc file on unix type machines. The problem is that on the machines I am working vim is not located in home, and it doesn't search for the vimrc in the home folder.

Basically the terminal command analog for what is :echo $VIMRUNTIME in Vim.


Solution

  • According to VIM's help for vimrc:

    Four places are searched for initializations.  The first that exists
    is used, the others are ignored.  The $MYVIMRC environment variable is
    set to the file that was first found, unless $MYVIMRC was already set
    and when using VIMINIT.
    -  The environment variable VIMINIT (see also |compatible-default|) (*)
       The value of $VIMINIT is used as an Ex command line.
    -  The user vimrc file(s):
            "$HOME/.vimrc"  (for Unix and OS/2) (*)
            "s:.vimrc"      (for Amiga) (*)
            "home:.vimrc"   (for Amiga) (*)
            "$VIM/.vimrc"   (for OS/2 and Amiga) (*)
            "$HOME/_vimrc"  (for MS-DOS and Win32) (*)
            "$VIM/_vimrc"   (for MS-DOS and Win32) (*)
        Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
        "_vimrc" is also tried, in case an MS-DOS compatible file
        system is used.  For MS-DOS and Win32 ".vimrc" is checked
        after "_vimrc", in case long file names are used.
        Note: For MS-DOS and Win32, "$HOME" is checked first.  If no
        "_vimrc" or ".vimrc" is found there, "$VIM" is tried.
        See |$VIM| for when $VIM is not set.
    -  The environment variable EXINIT.
       The value of $EXINIT is used as an Ex command line.
    -  The user exrc file(s).  Same as for the user vimrc file, but with
       "vimrc" replaced by "exrc".  But only one of ".exrc" and "_exrc" is
       used, depending on the system.  And without the (*)!
    

    So each user on your system could have a .vimrc stashed away in a different location, and might even be named differently.

    Do you really want to take away the freedom of the users to customize VIM as they please?