531

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

4

19 回答 19

618

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

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

于 2012-06-06T20:11:43.080 回答
392

如果你已经有一个 .vimrc 文件,这些方法可以工作:

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

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

于 2012-06-07T14:25:10.207 回答
114

简短的回答:

要创建 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(在$VIMAmiga 系统上,s:.vimrc被认为是用户 vimrc)

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

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

来自:help vimrc

包含初始化命令的文件称为“vimrc”文件。vimrc 文件中的每一行都作为 Ex 命令行执行。它有时也称为“exrc”文件。它们是相同类型的文件,但“exrc”是 Vi 常用的,“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”环境变量,它就会被设置为 'nocompatible'。这具有设置或重置其他选项的副作用(请参阅“兼容”)。但只会更改尚未设置或重置的选项。


*$VIM可能不会在你的 shell 中设置,但总是在 Vim 中设置。如果你想查看它的设置,启动 Vim 并使用命令:echo $VIM

于 2015-11-30T18:56:12.520 回答
30

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

/usr/share/vim/.vimrc
于 2013-09-24T06:38:27.650 回答
26
:echo($MYVIMRC)

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

:e $MYVIMRC

会打开它。

于 2013-09-15T02:47:27.677 回答
20

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

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

于 2016-06-03T18:45:31.843 回答
16

在 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"
于 2019-06-22T12:42:11.230 回答
15

打开 Vim,在普通模式下输入:

:echo $VIM
于 2018-02-19T02:14:07.367 回答
7

可以使用find命令获取有用信息


find / -iname "*vimrc*" -type f 2>/dev/null

已经有很多答案了,但有时对包含名称“vimrc”的任何内容运行“查找”很有用。

原因是这将显示您当前在系统上实际可用的文件,而不是您可能放在系统上的文件。(您将获得的信息,:version如其他答案中所述。)

我的系统上的示例结果

在我的系统上,这会产生

/usr/share/vim/vim82/vimrc_example.vim
/usr/share/vim/vim82/gvimrc_example.vim
/etc/vim/gvimrc
/etc/vim/vimrc
/etc/vim/vimrc.tiny

这非常有用,因为它告诉我们在 gvim 和 vim 的共享目录中安装了 2 个示例文件,并且下面还有一些系统范围的配置文件/etc/

在我的系统上,我也有一个文件,~/.vimrc但它没有出现在这个列表中,因为它是另一个文件的链接,存储在~/Linux-Config. 但是你不会有这个目录,它特定于我在我自己的网络上使用的机器。

find使用语法的详细解释

解释:

  • 从根目录开始/查找(递归查找)
  • 任何包含不区分大小写的正则表达式的东西,*vimrc*这意味着vimrc在某处带有(不区分大小写)的任何名称,可以在前面或后面跟着任何东西或什么都没有(*
  • 类型 = 文件(不是目录/符号链接等)
  • 抛出所有错误,/dev/null否则输出会充满不可读的错误/proc
于 2020-06-27T13:15:27.720 回答
6

这里还有一些提示:

  • Arch Linux中,全局版本位于/etc/vimrc. 里面有一些评论有帮助的细节。

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

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

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

于 2013-09-14T02:21:14.720 回答
6

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

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

如果在终端中,输入cd /usr/share/vim/,转到该文件夹​​,然后输入ls。可以直接看到一个名为 vimrc 的文件。但它是一个只读的系统文件。我觉得尝试修改它不是一个好主意。所以按照上面的步骤自己创建一个vimrc比较好。它对我有用。

于 2016-04-02T23:24:00.833 回答
3

我尝试了上一个答案中的所有内容,但找不到.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
于 2015-02-25T04:03:20.253 回答
3

实际上你有一个 vimrc

/etc/vimrc

当您在其中编辑某些内容时,
如果您不希望可以在其中创建本地 vimrc,则更改将影响所有用户

~/.vimrc

此处的更改只会影响一个用户

于 2020-10-13T01:27:27.927 回答
3

文件在哪里.vimrc?这取决于操作系统。如您所见,您正在寻找/home/$user/.vimrc,这可能意味着您正在使用 BSD / Linux。以下是每个操作系统的位置...

  • BSD/Linux/home/$user/.vimrc
  • SunOS / Solaris/export/home/$user/.vimrc
  • macOS/Users/$user/.vimrc
  • 安卓/data/media/$userid/.vimrc
  • Unix$root/home/$user/.vimrc
  • AT&T Unix$root/usr/$user/.vimrc
  • Unix 派生

如果它不存在,请使用~/.vimrc.

此外,root用户有自己的特殊.vimrc文件,可以/root/.vimrc在 BSD / Linux 上找到(以及其他操作系统的等效位置)。

该位置在变量中设置,该$HOME变量始终在 Linux 环境中设置。(来源:StackExchange->Unix & Linux。)

于 2021-08-14T14:35:04.443 回答
2

SUSE Linux Enterprise Server (SLES)openSUSE中,全局服务器位于/etc/vimrc.

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

于 2015-02-25T14:28:56.630 回答
2

Ubuntu ( 12.04 (Precise Pangolin) )中的vimrc文件:我在 Vim 中尝试过,它同时显示和.:scriptnames/usr/share/vim/vimrc~/.vimrc

但是我手动创建了~/.vimrc.

于 2015-05-24T12:22:23.623 回答
1

从 cmd (Windows):

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

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

:tabedit $HOME/.vimrc
于 2017-04-27T02:21:46.893 回答
0

在我的系统中,安装了 Garuda Linux 的文件的名称是 file:///etc/xdg/nvim/sysinit.vim,所以尝试找到这个文件并添加您的自定义更改。

于 2022-02-18T21:27:07.690 回答
-1

如果在 Windows 中,它可能位于文件夹“vim”中 Program Files(x86) 下的 C 目录中

于 2021-10-21T12:31:34.133 回答