Reputation: 6721
I have been using Vim, and I would really like to save my settings. The problem I am having is that I cannot find my .vimrc file, and it is not in the standard /home/user/.vimrc
location. How might I find this file?
Upvotes: 606
Views: 893008
Reputation: 5063
If you're using vi
instead of vim
then it's ~/.virc
you want to edit. Tested on Alma Linux 9
I found this by using vi --version
which then informed me where the user vimrc file:
location was.
Upvotes: 1
Reputation: 12401
I don't know about in other versions of Vim, but in Vim 9.0, the output of vim --version
includes great information about this. On my system, the output includes the following:
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/share/vim"
Upvotes: 5
Reputation: 134
I was attempting to edit my .vimrc file and this worked for me (macOS Ventura 13.0.1 December 2022).
touch ~/.vimrc
vim ~/.vimrc
I was then able to edit the file to my heart's content, and the next time I ran vim it picked up my changes.
Upvotes: 0
Reputation: 21
Unfortunately, there are so many answers and none of them helped me.
Until I ran
:checkhealth
in vim and found out that in my case, the vim config file should be named init.vim
(under ~/.config/nvim/init.vim
).
Upvotes: 2
Reputation: 1
the name of the file in my system, installed with Garuda Linux is file:///etc/xdg/nvim/sysinit.vim, so try to find this file and add your custom changes.
Upvotes: 0
Reputation: 1
if in Windows, it could be in your C directory under Program Files(x86) in the folder "vim"
Upvotes: -2
Reputation: 20948
Where is the .vimrc
file? It depends on the OS. As you can see, you were looking for /home/$user/.vimrc
, which probably means you are using BSD / Linux. Here are the locations for each OS...
/home/$user/.vimrc
/export/home/$user/.vimrc
/Users/$user/.vimrc
/data/media/$userid/.vimrc
$root/home/$user/.vimrc
$root/usr/$user/.vimrc
/var/users/$user/.vimrc
/u01/$user/.vimrc
/usr/$user/.vimrc
/user/$user/.vimrc
/users/$user/.vimrc
(Source: Wikipedia: Default home directory per operating system.)If it doesn't exist, create it with ~/.vimrc
.
In addition, the root
user has their own special .vimrc
file, which can be found in /root/.vimrc
on BSD / Linux (and in equivalent locations for the other OS's).
The location is set in the $HOME
variable, which is always set in Linux environments. (Source: StackExchange->Unix & Linux.)
Upvotes: 8
Reputation: 336
actually you have one vimrc in
/etc/vimrc
when you edit something in there the changes will effect all users
if you don't want that you can create a local vimrc in
~/.vimrc
the changes here will only effect the one user
Upvotes: 8
Reputation: 17414
find
commandfind / -iname "*vimrc*" -type f 2>/dev/null
There are many answers already, but it can sometimes be useful to simply run a "find" for anything containing the name "vimrc".
The reason is that this will show you what files you actualy have available on the system currently, rather than what you might put on your system. (The information for which you would obtain from :version
as explained in other answers.)
On my system this produces
/usr/share/vim/vim82/vimrc_example.vim
/usr/share/vim/vim82/gvimrc_example.vim
/etc/vim/gvimrc
/etc/vim/vimrc
/etc/vim/vimrc.tiny
Which is quite useful because it tells us that there are 2 example files installed in the share directorys for both gvim and vim, and that there are also some system-wide config files below /etc/
.
On my system, I also have a file at ~/.vimrc
but this does not appear in this list because it is a link to another file, stored under ~/Linux-Config
. But you won't have this directory, it's specific to machines I use on my own network.
find
syntax usedExplanation:
/
(find works recursively)*vimrc*
which means any name with vimrc
(case insensitive) in it somewhere, can be preceeded or followed by anything or nothing (*
)/dev/null
otherwise the output is spammed with unreadable errors from /proc
Upvotes: 10
Reputation: 4498
These methods work, if you already have a .vimrc file:
:scriptnames
list all the .vim files that Vim loaded for you, including your .vimrc
file.
:e $MYVIMRC
open & edit the current .vimrc that you are using, then use Ctrl + G to view the path in status bar.
Upvotes: 418
Reputation: 2242
on unix vim --version
tells you the various locations of the vim config files :
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/share/vim"
Upvotes: 25
Reputation: 143334
To create your vimrc, start up Vim and do one of the following:
:e $HOME/.vimrc " on Unix, Mac or OS/2
:e $HOME/_vimrc " on Windows
:e s:.vimrc " on Amiga
Insert the settings you want, and save the file.
Note that exisitence of this file will disable the compatible
option. See below for details.
There are two kinds of vimrc:
$HOME
$VIM
(on Amiga systems, s:.vimrc
is considered a user vimrc)The user vimrc file often does not exist until created by the user. If you cannot find $HOME/.vimrc
(or $HOME/_vimrc
on Windows) then you can, and probably should, just create it.
The system vimrc should normally be left unmodified and is located in the $VIM
* directory. The system vimrc is not a good place you keep your personal settings. If you modify this file your changes may be overwritten if you ever upgrade Vim. Also, changes here will affect other users on a multi-user system. In most cases, settings in the user vimrc will override settings in the system vimrc.
From :help vimrc
:
A file that contains initialization commands is called a "vimrc" file. Each line in a vimrc file is executed as an Ex command line. It is sometimes also referred to as "exrc" file. They are the same type of file, but "exrc" is what Vi always used, "vimrc" is a Vim specific name. Also see |vimrc-intro|.
Places for your personal initializations:
Unix $HOME/.vimrc or $HOME/.vim/vimrc OS/2 $HOME/.vimrc, $HOME/vimfiles/vimrc or $VIM/.vimrc (or _vimrc) MS-Windows $HOME/_vimrc, $HOME/vimfiles/vimrc or $VIM/_vimrc Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc or $VIM/.vimrc
The files are searched in the order specified above and only the first one that is found is read.
(MacOS counts as Unix for the above.)
Note that the mere existence of a user vimrc will change Vim's behavior by turning off the compatible
option. From :help compatible-default
:
When Vim starts, the 'compatible' option is on. This will be used when Vim starts its initializations. But as soon as a user vimrc file is found, or a vimrc file in the current directory, or the "VIMINIT" environment variable is set, it will be set to 'nocompatible'. This has the side effect of setting or resetting other options (see 'compatible'). But only the options that have not been set or reset will be changed.
* $VIM
may not be set in your shell, but is always set inside Vim. If you want to see what it's set to, start up Vim and use the command :echo $VIM
Upvotes: 128
Reputation: 946
As additional information, mostly in macOS, the .vimrc file is located at directory:
/usr/share/vim/.vimrc
Upvotes: 31
Reputation: 1000
I tried everything in the previous answer and couldn't find a .vimrc
file, so I had to make one.
I copied the example file, cp vimrc_example.vim ~/.vimrc
.
I had to create the file, copying from /usr/share/vim/vim74/vimrc_example.vim
to ~/.vimrc
. Those were the instructions in the vimrc_example
file.
My solution is for Unix for other operating systems. According to the Vim documentation, your destination path should be as follows:
For Unix and OS/2 : ~/.vimrc
For Amiga : s:.vimrc
For MS-DOS and Win32: $VIM\_vimrc
For OpenVMS : sys$login:.vimrc
Upvotes: 3
Reputation: 2700
In SUSE Linux Enterprise Server (SLES) and openSUSE the global one is located at /etc/vimrc
.
To edit it, simply do vi /etc/vimrc
.
Upvotes: 2
Reputation: 3301
The vimrc file in Ubuntu (12.04 (Precise Pangolin)): I tried :scriptnames
in Vim, and it shows both /usr/share/vim/vimrc
and ~/.vimrc
.
But I had manually created ~/.vimrc
.
Upvotes: 2
Reputation: 431
I'd like to share how I set showing the line number as the default on Mac.
cd
. This will help you go to the home folder.vi .vimrc
. This will create an empty vimrc system file which you want to use.set number
, and then hit Esc on the keyboard and type in :wq
. This will set the line number shown in the default setting file vimrc
and save it.vi something
to see if this works. If not, try to restart the terminal completely.If in a terminal, type in cd /usr/share/vim/
, go to that folder, and type in ls
. You can directly see a file named vimrc. But it's a system file that says read only. I feel it's not a good idea to try modify it. So following the above steps to create a vimrc by yourself is better. It worked for me.
Upvotes: 6
Reputation: 543
For whatever reason, these answers didn't quite work for me. This is what worked for me instead:
In Vim, the :version
command gives you the paths of system and user vimrc and gvimrc files (among other things), and the output looks something like this:
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
The one you want is user vimrc file: "$HOME/.vimrc"
So to edit the file: vim $HOME/.vimrc
Source: Open vimrc file
Upvotes: 22
Reputation: 2140
From cmd (Windows):
C\Users\You> `vim foo.txt`
Now in Vim, enter command mode by typing: ":" (i.e. Shift + ;)
:tabedit $HOME/.vimrc
Upvotes: 1
Reputation: 15167
You need to create it. In most installations I've used it hasn't been created by default.
You usually create it as ~/.vimrc
.
Upvotes: 690
Reputation: 57318
Here are a few more tips:
In Arch Linux the global one is at /etc/vimrc
. There are some comments in there with helpful details.
Since the filename starts with a .
, it's hidden unless you use ls -a
to show ALL files.
Typing :version
while in Vim will show you a bunch of interesting information including the file location.
If you're not sure what ~/.vimrc
means look at this question.
Upvotes: 7
Reputation: 62588
:echo($MYVIMRC)
will give you the location of your .vimrc file.
:e $MYVIMRC
will open it.
Upvotes: 28