【问题标题】:Where is my .vimrc file?我的 .vimrc 文件在哪里?
【发布时间】:2012-06-10 21:29:17
【问题描述】:

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

【问题讨论】:

标签: vim


【解决方案1】:

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

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

【讨论】:

  • 还要检查 /etc/vim/vimrc
  • @Nateshbhat:我应该继续使用/etc/vim/vimrc 还是将其复制到~/.vimrc?或者我可以两者兼得?
  • 如果要自定义,我先复制到本地。否则,您将更改所有用户的设置。
  • 您应该知道,如果您创建此文件,它将忽略系统 vimrc 文件中的所有设置。 (例如/etc/vim/vimrc。)在我创建了.vimrc 之后,这让我很困惑,没有用我所有常用的选项完全填充它(因为它在我不打算做太多工作的服务器上) 它使我的 vim 处于损坏或无法正常工作的状态。
  • 嘿!我在 VSCode 中使用 VIM 扩展。有没有办法改变扩展的键绑定?
【解决方案2】:

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

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

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

【讨论】:

  • @MorganWilde 不一定,:scriptnames:e $MYVIMRC 都为我返回空白输出。
  • +1 表示:scriptnames。但是 $MYVIMRC 不能保证被设置,例如在使用 vim -u filename 启动 vim 时。
  • :scriptnames 有 vimrc 但没有 .vimrc,它们是一样的吗?我发现它们位于我的 usr/share 文件夹中,添加 ~/.vimrc (作为公认的答案)甚至会在没有进一步配置的情况下做任何事情吗?这可能是向 vimrc 添加用户特定选项的一种方式吗?
  • 请注意,:e $MYVIMRC 仅在首先存在 vimrc 文件时才有效。否则这将开始编辑一个字面上称为$MYVIMRC的文件。
  • @Shadoninja - 这不是“你的”,而是全局 rc 文件。无论您在 .vimrc 文件(大多数情况下在您的主目录中)中定义的任何内容,都将覆盖 /etc/vimrc 中的默认值。
【解决方案3】:

简答:

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

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

:e $HOME/_vimrc  " on Windows

:e s:.vimrc      " on Amiga

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

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

长答案:

vimrc 有两种:

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

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

系统 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”环境变量是 设置,它将被设置为“不兼容”。这具有设置或 重置其他选项(参见“兼容”)。但只有具有的选项 未设置或重置将被更改。


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

【讨论】:

    【解决方案4】:

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

    /usr/share/vim/.vimrc
    

    【讨论】:

    • 即系统vimrc。最好编辑 $HOME/.vimrc,如果它不存在就创建它。
    • 如果 .vimrc 文件未在主目录中创建,则 vi 引用 /usr/share/vim/.vimrc 文件以供使用。
    • 在 Ubuntu 中和我发现的一样。
    【解决方案5】:
    :echo($MYVIMRC)
    

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

    :e $MYVIMRC
    

    会打开它。

    【讨论】:

    • 我收回以下内容:-bash: 意外令牌'$MYVIMRC'附近的语法错误
    • @YannisDran - 嗯,什么?
    • @Idigas 我在我的命令窗口上输入 :echo(xxx) 但我现在意识到你的意思是在 vim 编辑器中输入这个。然而,即使 :e xxx 有效, :echo(xxx) 也无效。它说 E121 Undefined Variable: xxx E15: Invalid Expression : ($xxx)
    • @YannisDran - 为了清楚起见,您在 vim 命令行中输入 :echo($myvimrc) 时遇到了这个错误?不是 :echo(myvimrc) 吗?
    • 我使用 $ 并在 vi 编辑器中进行了操作(键入:启用命令行)。顺便说一句,现在 vim 什么都没有响应,它只将指示器放在 vim 的第一行。 (Vim-Vi 在 OSX 上改进了 v.7.3)
    【解决方案6】:

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

    在 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

    来源:Open vimrc file

    【讨论】:

    • 我不明白现有的答案如何不适合你,而事实上你提出的解决方案已经被他们所涵盖。 This answer 提到 $HOME/.vimrcthe top answer 提到 ~/.vimrc$HOME/.vimrc 相同。
    • 完全同意你的看法。当我的答案被编辑时,我的意思丢失了
    【解决方案7】:

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

    :echo $VIM
    

    【讨论】:

    • 被低估的答案
    • 对我来说它只输出/usr/share/vim。版本 8.2.100,Arch Linux。
    • 这会告诉你你的系统 vimrc 所在的目录,但它不会告诉你你的用户 vimrc 应该去哪里,或者它的名字应该是什么。
    • 好吧,问题“在哪里”是 vimrc 文件。用户 vimrc 应该去哪里?放入~/.vimrc~/.vim/vimrc,注意后者前面没有点。
    【解决方案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 中不起作用。)
    【解决方案9】:

    我想分享一下我是如何在 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”。
    【解决方案10】:

    这里还有一些提示:

    • Arch Linux 中,全局地址位于/etc/vimrc。里面有一些 cmets 提供了有用的详细信息。

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

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

    • 如果您不确定 ~/.vimrc 是什么意思 look at this question

    【讨论】:

      【解决方案11】:

      可以使用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(不区分大小写)的任何名称,可以在其前面或后面跟任何内容或任何内容(*
      • type = files(不是目录/符号链接等)
      • 将所有错误都扔给/dev/null,否则输出会包含来自/proc 的不可读错误

      【讨论】:

        【解决方案12】:

        我尝试了上一个答案中的所有内容,但找不到.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
        

        【讨论】:

          【解决方案13】:

          实际上你有一个 vimrc

          /etc/vimrc

          当您在其中编辑某些内容时,更改将影响所有用户
          如果你不想这样,你可以在

          中创建一个本地 vimrc

          ~/.vimrc

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

          【讨论】:

            【解决方案14】:

            来自 cmd (Windows):

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

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

            :tabedit $HOME/.vimrc
            

            【讨论】:

            • 这假定键盘采用美式布局。
            【解决方案15】:

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

            但我手动创建了~/.vimrc

            【讨论】:

              【解决方案16】:

              SUSE Linux Enterprise Server (SLES)openSUSE 中,全局地址位于/etc/vimrc

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

              【讨论】:

                【解决方案17】:

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

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

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

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

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

                【讨论】:

                  【解决方案18】:

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

                  【讨论】:

                  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
                  猜你喜欢
                  • 2017-08-03
                  • 2015-12-20
                  • 1970-01-01
                  • 2013-03-17
                  • 2012-11-12
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多