我一直在使用 Vim,我真的很想保存我的设置。我遇到的问题是我找不到我的 .vimrc 文件,而且它不在标准的 /home/user/.vimrc
位置。我怎样才能找到这个文件?
/usr/share/vim/vimrc
的文件中。
/usr/share/vim/vimrc
没有句点)。但是,此文件包含以下注释:Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc. This happens after /etc/vim/vimrc(.local) are loaded, so it will override any settings in these files.
您需要创建它。在我使用的大多数安装中,默认情况下没有创建它。
您通常将其创建为 ~/.vimrc
。
如果你已经有一个 .vimrc 文件,这些方法可以工作:
:scriptnames
列出 Vim 为您加载的所有 .vim 文件,包括您的 .vimrc
文件。
:e $MYVIMRC
打开 &编辑您正在使用的当前 .vimrc,然后使用 Ctrl + G 在状态栏中查看路径。
:scriptnames
和 :e $MYVIMRC
都为我返回空白输出。
:scriptnames
+1。但是,不能保证设置 $MYVIMRC
,例如在使用 vim -u filename
启动 vim 时。
:e $MYVIMRC
仅在首先存在 vimrc
文件时才有效。否则,这将开始编辑一个字面上称为 $MYVIMRC
的文件。
rc
文件。无论您在 .vimrc
文件中(大多数情况下在您的主目录中)定义什么,都将覆盖 /etc/vimrc
中的默认值。
简短的回答:
要创建 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 中的系统 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”环境变量,它就会被设置为 'nocompatible'。这具有设置或重置其他选项的副作用(请参阅“兼容”)。但只会更改尚未设置或重置的选项。
* $VIM
可能不在你的 shell 中设置,但总是在 Vim 中设置。如果您想查看它的设置,请启动 Vim 并使用命令 :echo $VIM
作为附加信息,主要在 macOS 中,.vimrc 文件位于目录:
/usr/share/vim/.vimrc
/usr/share/vim/.vimrc
文件以供使用。
:echo($MYVIMRC)
将为您提供 .vimrc 文件的位置。
:e $MYVIMRC
会打开它。
无论出于何种原因,这些答案对我来说都不太适用。这对我有用:
在 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
$HOME/.vimrc
,the top answer 提及 ~/.vimrc
,与 $HOME/.vimrc
相同。
在 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"
打开 Vim,在普通模式下输入:
:echo $VIM
/usr/share/vim
。版本 8.2.100,Arch Linux。
~/.vimrc
或~/.vim/vimrc
,注意后者前面没有点。
可以使用 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语法详解
解释:
find 从根目录 / 开始(递归查找)
包含不区分大小写的正则表达式 *vimrc* 的任何内容,这意味着在某处带有 vimrc(不区分大小写)的任何名称,可以在前面或后面跟任何东西或什么都没有 (*)
类型 = 文件(不是目录/符号链接等)
将所有错误都抛出到 /dev/null 否则输出会被 /proc 中的不可读错误发送垃圾邮件
*
的作用类似于常规 glob,则应改为: find / \( -iname "*vimrc*" -o -iname ".*vimrc*" \) -type f 2>/dev/null
,否则您将错过以 .
开头的文件名(例如 ~/.vimrc
等),就像在常规 shell glob 中一样,{ 5} 不抓取以 .
开头的文件(因为这些文件在大多数 unix/linux 命令中“轻微隐藏”此命名方案(比较 ls -l
和 ls -al
,而 echo *
将只显示那些不'不以 .
) 开头,因此常规 *
glob 默认情况下不包括那些)
这里还有一些提示:
在 Arch Linux 中,全局文件位于 /etc/vimrc。里面有一些评论有帮助的细节。
由于文件名以 . 开头,因此除非您使用 ls -a 显示所有文件,否则它是隐藏的。
在 Vim 中输入 :version 会显示很多有趣的信息,包括文件位置。
如果您不确定 ~/.vimrc 是什么意思,请查看这个问题。
我想分享我如何在 Mac 上将显示行号设置为默认值。
在终端中,键入 cd。这将帮助您转到主文件夹。在终端中,输入 vi .vimrc。这将创建一个您要使用的空 vimrc 系统文件。在文件中,键入 set number,然后按键盘上的 Esc 并键入 :wq。这将设置默认设置文件 vimrc 中显示的行号并保存。 vi 看看这是否有效。如果没有,请尝试完全重新启动终端。
如果在终端中,输入 cd /usr/share/vim/
,转到该文件夹,然后输入 ls
。可以直接看到一个名为 vimrc 的文件。但它是一个只读的系统文件。我觉得尝试修改它不是一个好主意。所以按照上面的步骤自己创建一个vimrc比较好。它对我有用。
.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-Derived : /var/users/$user/.vimrc /u01/$user/.vimrc /usr/$user/.vimrc /user/$user/.vimrc /users/$user/.vimrc (来源: Wikipedia :每个操作系统的默认主目录。)
/var/users/$user/.vimrc
/u01/$user/.vimrc
/usr/$user/.vimrc
/user/$user/.vimrc
/users/$user/.vimrc(来源:维基百科:每个操作系统的默认主目录。)
如果它不存在,请使用 ~/.vimrc
创建它。
此外,root
用户有他们自己的特殊 .vimrc
文件,可以在 BSD/Linux 上的 /root/.vimrc
中找到(以及其他操作系统的等效位置)。
该位置在 $HOME
变量中设置,该变量始终在 Linux 环境中设置。 (Source: StackExchange->Unix & Linux。)
我尝试了上一个答案中的所有内容,但找不到 .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
实际上你有一个 vimrc
/etc/vimrc
当您在其中编辑某些内容时,如果您不希望可以在其中创建本地 vimrc,则更改将影响所有用户
~/.vimrc
此处的更改只会影响一个用户
Ubuntu (12.04 (Precise Pangolin)) 中的 vimrc 文件:我在 Vim 中尝试了 :scriptnames
,它同时显示了 /usr/share/vim/vimrc
和 ~/.vimrc
。
但我手动创建了 ~/.vimrc
。
从 cmd (Windows):
C\Users\You> `vim foo.txt`
现在在 Vim 中,输入命令模式:“:”(即 Shift + ;)
:tabedit $HOME/.vimrc
在我的系统中,安装了 Garuda Linux 的文件的名称是 file:///etc/xdg/nvim/sysinit.vim,所以尝试找到这个文件并添加您的自定义更改。
如果在 Windows 中,它可能位于文件夹“vim”中 Program Files(x86) 下的 C 目录中
/etc/vim/vimrc
还是将其复制到~/.vimrc
?或者我可以两者兼得吗?/etc/vim/vimrc
。)在创建.vimrc
之后,这让我感到困惑,没有用我所有常用的选项完全填充它(因为它位于我不打算做太多工作的服务器上) 它使我的 vim 处于损坏或无法正常工作的状态。