我的.vimrc文件在哪里?

Ema*_*man 392 vim

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

AlG*_*AlG 460

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

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

  • 还要检查/ etc / vim / vimrc (8认同)
  • 您应该注意,如果创建此文件,它将忽略系统 vimrc 文件中的所有设置。(例如`/etc/vim/vimrc`。)在我创建了`.vimrc`之后,这让我困惑不已,没有用我所有常用的选项完全填充它(因为它位于我没有的服务器上)打算做很多工作),它让我的 vim 处于损坏或无法运行的状态。 (4认同)
  • @Nateshbhat:我应该继续使用 `/etc/vim/vimrc` 还是将其复制到 `~/.vimrc` ?或者我可以两者都拥有吗? (2认同)

小智 340

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

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

  • 需要注意的是`:E $ MYVIMRC`只有当首先一个`vimrc`文件的工作.否则,这将开始编辑一个名为`$ MYVIMRC`的文件. (13认同)
  • @MorganWilde不一定,`:scriptnames`和`:e $ MYVIMRC`都为我返回空白输出. (7认同)
  • :scriptnames有vimrc而不是.vimrc,它们是一样的吗?我发现它们位于我的usr/share文件夹中,添加〜/ .vimrc(作为已接受的答案)甚至可以做任何事情而无需进一步配置?这是一种将用户特定选项添加到vimrc的方法吗? (4认同)

Lau*_*ves 86

简短回答:

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

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

:e $HOME/_vimrc  " on Windows

:e s:.vimrc      " on Amiga
Run Code Online (Sandbox Code Playgroud)

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

请注意,此文件的存在将禁用该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"文件.它们是相同类型的文件,但"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
Run Code Online (Sandbox Code Playgroud)

按上面指定的顺序搜索文件,只读取找到的第一个文件.

(对于上述情况,MacOS计为Unix.)

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

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


*$VIM可能未在shell中设置,但始终设置在vim中.如果要查看它的设置,请启动vim并使用该命令:echo $VIM


hih*_*ell 27

作为附加信息,主要在macOS中,.vimrc位于dir:

/usr/share/vim/.vimrc
Run Code Online (Sandbox Code Playgroud)

  • 那是系统vimrc.最好编辑$ HOME/.vimrc,如果它还不存在则创建它. (24认同)

Roo*_*ook 23

:echo($MYVIMRC)
Run Code Online (Sandbox Code Playgroud)

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

:e $MYVIMRC
Run Code Online (Sandbox Code Playgroud)

会打开它.


Aar*_*sus 14

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

在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"
Run Code Online (Sandbox Code Playgroud)

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

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

资料来源:http://vim.wikia.com/wiki/Vimrc

  • 我不明白现有的答案如何对你不起作用,实际上你提出的解决方案已经涵盖了.[这个答案](/sf/answers/2380411421/)提到`$ HOME/.vimrc`和[最佳答案](/sf/answers/764503981/)提到` 〜/ .vimrc`与`$ HOME/.vimrc`相同. (2认同)

qrt*_*tLs 13

在 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"
Run Code Online (Sandbox Code Playgroud)


ade*_*dem 10

以正常模式打开Vim;

:echo $VIM
Run Code Online (Sandbox Code Playgroud)


use*_*501 9

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


find / -iname "*vimrc*" -type f 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

已经有很多答案,但有时简单地运行“查找”来查找包含名称“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
Run Code Online (Sandbox Code Playgroud)

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

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

find所用语法的详细解释

解释:

  • 从根目录开始查找/(递归查找)
  • 任何包含不区分大小写正则表达式的内容,这意味着其中某处*vimrc*包含(不区分大小写)的任何名称,前面或后面可以有任何内容或没有 ( )vimrc*
  • 类型 = 文件(不是目录/符号链接等)
  • 抛出所有错误,/dev/null否则输出将充满不可读的错误/proc


Hol*_*ger 8

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

  • BSD/Linux/home/$user/.vimrc
  • SunOS/Solaris/export/home/$user/.vimrc
  • 苹果系统/Users/$user/.vimrc
  • 安卓/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 环境中设置。(来源:StackExchange->Unix 和 Linux。)


小智 7

实际上你有一个 vimrc

/etc/vimrc


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

〜/.vimrc

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


Ben*_*Ben 5

这里还有一些提示:

  • Arch Linux 中,全局变量位于/etc/vimrc. 那里有一些评论,其中包含有用的详细信息。

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

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

  • 如果您不确定这~/.vimrc意味着什么,请查看此问题


Jin*_*ang 5

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

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

如果在终端中键入vimrc转到该文件夹​​然后输入vi something,则可以直接看到名为vimrc的文件.但它是一个只读的系统文件.我觉得尝试修改它并不是一个好主意.所以按照上面的步骤自己创建一个vimrc会更好.它对我有用.