我一直在使用Vim,我真的很想保存我的设置。我遇到的问题是我找不到我的 .vimrc 文件,而且它不在标准/home/user/.vimrc
位置。我怎样才能找到这个文件?
19 回答
您需要创建它。在我使用的大多数安装中,默认情况下没有创建它。
您通常将其创建为~/.vimrc
.
如果你已经有一个 .vimrc 文件,这些方法可以工作:
:scriptnames
列出 Vim 为你加载的所有 .vim 文件,包括你的.vimrc
文件。
:e $MYVIMRC
打开并编辑您正在使用的当前 .vimrc,然后使用Ctrl+G查看状态栏中的路径。
简短的回答:
要创建 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”文件。它们是相同类型的文件,但“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
: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
来源:打开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
可以使用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
这里还有一些提示:
在Arch Linux中,全局版本位于
/etc/vimrc
. 里面有一些评论有帮助的细节。由于文件名以 a 开头,除非您用于显示所有文件
.
,否则它是隐藏的。ls -a
在 Vim 中输入
:version
会显示很多有趣的信息,包括文件位置。如果您不确定是什么
~/.vimrc
意思,请查看这个问题。
我想分享我如何在 Mac 上将显示行号设置为默认值。
- 在终端中,键入
cd
。这将帮助您转到主文件夹。 - 在终端中,键入
vi .vimrc
。这将创建一个您要使用的空 vimrc 系统文件。 - 在文件中,输入
set number
,然后敲击Esc键盘并输入:wq
. 这将设置默认设置文件中显示的行号vimrc
并保存。 vi something
看看这是否有效。如果没有,请尝试完全重新启动终端。
如果在终端中,输入cd /usr/share/vim/
,转到该文件夹,然后输入ls
。可以直接看到一个名为 vimrc 的文件。但它是一个只读的系统文件。我觉得尝试修改它不是一个好主意。所以按照上面的步骤自己创建一个vimrc比较好。它对我有用。
我尝试了上一个答案中的所有内容,但找不到.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
此处的更改只会影响一个用户
文件在哪里.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 派生:
/var/users/$user/.vimrc
/u01/$user/.vimrc
/usr/$user/.vimrc
/user/$user/.vimrc
/users/$user/.vimrc
(来源:维基百科:每个操作系统的默认主目录。)
如果它不存在,请使用~/.vimrc
.
此外,root
用户有自己的特殊.vimrc
文件,可以/root/.vimrc
在 BSD / Linux 上找到(以及其他操作系统的等效位置)。
该位置在变量中设置,该$HOME
变量始终在 Linux 环境中设置。(来源:StackExchange->Unix & Linux。)
在SUSE Linux Enterprise Server (SLES)和openSUSE中,全局服务器位于/etc/vimrc
.
要编辑它,只需执行vi /etc/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 目录中