我的.vimrc文件在哪里?


Answers:


513

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

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


17
还检查/ etc / vim / vimrc
Natesh bhat

@Nateshbhat:我应该继续使用/etc/vim/vimrc还是将其复制到~/.vimrc?还是可以两者兼而有之?
Mohammad Faisal

如果要自定义它,请先将其复制到本地。否则,您将更改所有用户的设置。
AlG

353

如果您已经有一个.vimrc文件,这些方法将起作用:

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

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


7
@MorganWilde不一定,:scriptnames并且:e $MYVIMRC两者都为我返回空白输出。
罗默2014年

1
为+1 :scriptnames。但是$MYVIMRC不能保证设置,例如,当使用vim启动vim时vim -u filename
1983年

4
:scriptnames有vimrc但没有.vimrc,它们是一样的吗?我发现它们位于我的usr / share文件夹中,是否会添加〜/ .vimrc(作为公认的答案),然后在没有进一步配置的情况下做什么?这是向vimrc添加用户特定选项的方法吗?
泰勒2014年

14
请注意,:e $MYVIMRC仅在首先存在vimrc文件时有效。否则,这将开始编辑一个名为的文件$MYVIMRC
Tomalak

1
@Shadoninja-不是“您的”,而是全局rc文件。无论您在.vimrc文件中定义的内容(大多数情况下是在主目录中),都将覆盖中的默认设置/etc/vimrc
mathguy

92

简短答案:

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

:e $HOME/.vimrc  " on Unix, Mac or OS/2

:e $HOME/_vimrc  " on Windows

:e s:.vimrc      " on Amiga

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

请注意,此文件的存在将禁用该compatible选项。有关详情,请参见下文。

长答案:

vimrc有两种:

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

用户vimrc文件通常直到用户创建才存在。如果找不到$HOME/.vimrc(或$HOME/_vimrc在Windows上),则可以并且可能应该创建它。

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

来自:help vimrc

包含初始化命令的文件称为“ vimrc”文件。vimrc文件中的每一行都作为Ex命令行执行。有时也称为“ exrc”文件。它们是相同类型的文件,但是Vi始终使用“ exrc”,“ vimrc”是Vim的特定名称。另请参见| vimrc-intro |。

个人初始化的地方:

    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

按照上面指定的顺序搜索文件,并且仅读取找到的第一个文件。

(在上述情况下,MacOS算作Unix。)

注意,仅存在用户vimrc会通过关闭该compatible选项来改变Vim的行为。来自:help compatible-default

当Vim启动时,'compatible'选项打开。Vim开始初始化时将使用它。但是,一旦找到用户vimrc文件,当前目录中的vimrc文件或设置了“ VIMINIT”环境变量,该文件就会被设置为“不兼容”。这具有设置或重置其他选项的副作用(请参阅“兼容”)。但是只会更改尚未设置或重置的选项。


* $VIM可能没有在shell中设置,但始终在Vim内部设置。如果要查看其设置,请启动Vim并使用以下命令:echo $VIM


28

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

/usr/share/vim/.vimrc

25
那就是系统vimrc。最好编辑$ HOME / .vimrc,并创建它(如果尚不存在)。
劳伦斯·贡萨尔维斯

1
如果未在主目录中创建.vimrc文件,则vi引用该/usr/share/vim/.vimrc文件以供使用。
桑迪普,2016年

我发现在Ubuntu中也是如此。
ckjbgames

25
:echo($MYVIMRC)

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

:e $MYVIMRC

将其打开。


1
我收回以下内容:-bash:意外令牌'$ MYVIMRC'附近的语法错误
Yannis Dran 2014年

@YannisDran-嗯,什么?
Rook 2014年

@Idigas我在命令窗口中输入:echo(xxx),但我意识到现在您打算将此输入到vim编辑器中。但是,即使:e xxx起作用,:echo(xxx)也不起作用。它说E121未定义变量:xxx E15:无效表达式:($ xxx)
Yannis Dran 2014年

@YannisDran-要清楚,您在vim命令行中键入:echo($ myvimrc)时遇到了该错误?不是:echo(myvimrc)偶然吗?
2014年

1
我使用$并将其输入到vi编辑器中(键入:启用命令行)。顺便说一句,现在vim没有任何反应,它只将指示器置于vim的第一行。(在OSX上Vim-Vi改进了v.7.3)
Yannis Dran 2014年

15

无论出于何种原因,这些答案对我来说都不太奏效。这是对我有用的:

在Vim中,该:version命令为您提供系统和用户vimrc和gvimrc文件的路径(以及其他内容),输出看起来像这样:

 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文件


2
我不明白现有的答案对您没有太大帮助,而实际上您提出的解决方案已经涵盖了这些答案。此答案提及$HOME/.vimrc顶部答案提及~/.vimrc与相同$HOME/.vimrc
doubleDown

完全同意你的看法。编辑我的答案时,我想说的话已经迷失了
亚伦·阿方索斯

11

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

:echo $VIM

被低估的答案
Fl.pf.

对我来说,它仅输出/usr/share/vim。版本8.2.100,Arch Linux。
Yaroslav Nikitenko

这会告诉您系统vimrc所在的目录,但不会告诉您用户vimrc应该去哪里,或者它的名称应该是什么。
劳伦斯·贡萨尔维斯

好了,问题“哪里”是vimrc文件。用户vimrc应该去哪里?将其放入~/.vimrc~/.vim/vimrc,请注意后者前面没有点。
adem

8

在unix上可以vim --version告诉您vim配置文件的各个位置:

   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"

可以验证它是否与与Git for Windows捆绑在一起的VIM一起使用。(注意到这一点仅仅是因为如此之多,以至于一个SO答案可能假定它在Git Bash中不起作用。)
珍妮(Janet

5

这里有一些提示:

  • Arch Linux中,全球范围是/etc/vimrc。那里有一些注释,其中包含有用的详细信息。

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

  • :version在Vim中输入内容会显示很多有趣的信息,包括文件位置。

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


5

我想分享一下如何设置显示行号作为Mac上的默认行号。

  1. 在终端中,键入cd。这将帮助您转到主文件夹。
  2. 在终端中,键入vi .vimrc。这将创建一个您要使用的空vimrc系统文件。
  3. 在文件中,键入set number,然后Esc按键盘上的,然后输入:wq。这将设置默认设置文件中显示的行号vimrc并保存。
  4. vi something看看是否可行。如果不是,请尝试完全重新启动终端。

如果在终端中,输入cd /usr/share/vim/,转到该文件夹​​,然后输入ls。您可以直接看到一个名为vimrc的文件。但这是一个只读的系统文件。我觉得尝试对其进行修改不是一个好主意。因此,按照上述步骤自行创建vimrc会更好。它为我工作。


我需要为CentOS7安装更改以上内容:在步骤1之后,键入“ cd username”。
HoldOffHunger

2

我尝试了上一个答案中的所有内容,但找不到.vimrc文件,因此我不得不制作一个文件。

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

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

我的解决方案是针对其他操作系统的Unix。根据Vim文档,您的目标路径应如下:

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

1

从cmd(Windows):

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

现在在Vim中,通过键入以下命令进入命令模式:“ ”(即Shift+ ;

:tabedit $HOME/.vimrc

假定键盘为美式布局。
Peter Mortensen


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.