关于vim:我的.vimrc文件在哪里?


Where is my .vimrc file?

我一直在使用Vim,我真的想保存我的设置。 我遇到的问题是我找不到我的.vimrc文件,它不在标准的/home/user/.vimrc位置。 我怎么能找到这个文件?


你需要创建它。在我使用过的大多数安装中,默认情况下尚未创建。

您通常将其创建为~/.vimrc


:scriptnames列出Vim为您加载的所有.vim文件,包括.vimrc文件。

:e $MYVIMRC开放&编辑您正在使用的当前.vimrc,然后使用Ctrl + G查看状态栏中的路径。


简短回答:

要创建vimrc,请启动Vim并执行以下操作之一:

1
2
3
4
5
:e $HOME/.vimrc " on Unix, Mac or OS/2

:e $HOME/_vimrc " on Windows

:e s:.vimrc     " on Amiga

插入所需的设置,然后保存文件。

请注意,此文件的存在将禁用compatible选项。请参阅下文了解详情。

答案很长:

vimrc有两种:

  • $HOME中的用户vimrc
  • $VIM中的系统vimrc(在Amiga系统上,s:.vimrc被视为用户vimrc)

用户vimrc文件通常在用户创建之前不存在。如果你找不到$HOME/.vimrc(或Windows上的$HOME/_vimrc)那么你可以,也许应该只是创建它。

系统vimrc通常应保持不变,位于$VIM *目录中。系统vimrc不是保存个人设置的好地方。如果您修改此文件,则在升级Vim时可能会覆盖您的更改。此外,此处的更改将影响多用户系统上的其他用户。在大多数情况下,用户vimrc中的设置将覆盖系统vimrc中的设置。

来自: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:

1
2
3
4
5
6
7
    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计为Unix。)

请注意,仅仅存在用户vimrc将通过关闭compatible选项来改变Vim的行为。来自: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可能未在shell中设置,但始终在Vim中设置。如果要查看它的设置,请启动Vim并使用命令:echo $VIM


作为附加信息,主要是在macOS中,.vimrc文件位于以下目录:

1
/usr/share/vim/.vimrc


1
:echo($MYVIMRC)

将为您提供.vimrc文件的位置。

1
:e $MYVIMRC

会打开它。


无论出于何种原因,这些答案对我来说并不适用。 这对我有用:

在Vim中,:version命令为您提供系统和用户vimrc和gvimrc文件的路径(以及其他内容),输出如下所示:

1
2
3
4
5
 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"

你想要的是user vimrc file:"$HOME/.vimrc"

所以编辑文件:vim $HOME/.vimrc

来源:打开vimrc文件


打开Vim,并以正常模式键入:

1
:echo $VIM


我想分享一下如何在Mac上将行号显示为默认值。

  • 在终端中,键入cd。这将帮助您转到主文件夹。
  • 在终端中,键入vi .vimrc。这将创建一个您想要使用的空vimrc系统文件。
  • 在文件中,键入set number,然后在键盘上单击Esc并键入:wq。这将设置默认设置文件vimrc中显示的行号并保存。
  • vi something看看是否有效。如果没有,请尝试完全重启终端。
  • 如果在终端中键入cd /usr/share/vim/,请转到该文件夹??,然后键入ls。您可以直接看到名为vimrc的文件。但它是一个只读的系统文件。我觉得尝试修改它并不是一个好主意。因此,按照上述步骤自行创建vimrc会更好。它对我有用。


    以下是一些提示:

    • 在Arch Linux中,全局的是/etc/vimrc。这里有一些评论,有用的细节。

    • 由于文件名以.开头,因此除非您使用ls -a显示所有文件,否则它将被隐藏。

    • 在Vim中键入:version将显示一些有趣的信息,包括文件位置。

    • 如果你不确定~/.vimrc是什么意思看这个问题。


    我尝试了上一个答案中的所有内容,但找不到.vimrc文件,所以我必须创建一个。

    我复制了示例文件cp vimrc_example.vim ~/.vimrc

    我必须创建文件,从/usr/share/vim/vim74/vimrc_example.vim复制到~/.vimrc。这些是vimrc_example文件中的说明。

    我的解决方案适用于其他操作系统的Unix。根据Vim文档,您的目标路径应如下所示:

    1
    2
    3
    4
        For Unix and OS/2   : ~/.vimrc
        For Amiga           : s:.vimrc
        For MS-DOS and Win32: $VIM\_vimrc
        For OpenVMS         : sys$login:.vimrc

    在unix $vim --version上告诉你各个位置:

    1
    2
    3
    4
    5
    6
       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"


    从cmd(Windows):

    1
    C\Users\You> `vim foo.txt`

    现在在Vim中,输入命令模式:":"(即Shift + ; )

    1
    :tabedit $HOME/.vimrc


    Ubuntu中的vimrc文件(12.04(精确穿山甲)):我在Vim中尝试了:scriptnames,它显示了/usr/share/vim/vimrc~/.vimrc

    但我手动创建了~/.vimrc


    在SUSE Linux Enterprise Server(SLES)和openSUSE中,全局的位于/etc/vimrc

    要编辑它,只需执行vi /etc/vimrc