我一直在使用Vim,我真的很想保存我的设置。我遇到的问题是我找不到我的.vimrc文件,它不在标准的/home/user/。vimrc位置。我怎样才能找到这个文件?
当前回答
简短的回答:
要创建您的vimrc,启动Vim并执行以下操作之一:
:e $HOME/.vimrc " on Unix, Mac or OS/2
:e $HOME/_vimrc " on Windows
:e s:.vimrc " on Amiga
插入您想要的设置,并保存文件。
注意,该文件的存在将禁用兼容选项。详情见下文。
长一点的回答:
vimrc有两种类型:
用户vimrc在$HOME $VIM中的系统vimrc(在Amiga系统上,s:。Vimrc被认为是一个用户
用户vimrc文件通常在用户创建之前并不存在。如果你找不到$HOME/。vimrc(或Windows上的$HOME/_vimrc),那么您就可以,而且可能应该只创建它。
系统vimrc通常不应该被修改,它位于$VIM*目录中。vimrc系统不是保存个人设置的好地方。如果您修改了这个文件,那么在升级Vim时,您所做的更改可能会被覆盖。此外,这里的更改将影响多用户系统上的其他用户。在大多数情况下,用户vimrc中的设置将覆盖系统vimrc中的设置。
help vimrc:
A file that contains initialization commands is called a "vimrc" file. Each line in a vimrc file is executed as an Ex command line. It is sometimes also referred to as "exrc" file. They are the same type of file, but "exrc" is what Vi always used, "vimrc" is a Vim specific name. Also see |vimrc-intro|. Places for your personal initializations: 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 The files are searched in the order specified above and only the first one that is found is read.
(在上述情况下,MacOS也算作Unix。)
注意,仅仅用户vimrc的存在就会通过关闭兼容选项来改变Vim的行为。From:help compatible-default:
当Vim启动时,“compatible”选项是打开的。这将在Vim 开始初始化。但是一旦找到用户vimrc文件,或者 vimrc文件在当前目录下,或者“VIMINIT”环境变量是 设置,它将被设置为'nocompatible'。这有设置或 重置其他选项(参见“compatible”)。但只能是有选择的 未设置或重置将被更改。
$VIM可能不在shell中设置,但总是在VIM中设置。如果你想查看它的设置,启动Vim并使用命令:echo $ Vim
其他回答
在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"
作为附加信息,大多数在macOS中,.vimrc文件位于目录:
/usr/share/vim/.vimrc
这里还有一些建议:
在Arch Linux中,全局文件位于/etc/vimrc.这里有一些有用的细节评论。 由于文件名以.开头,所以它是隐藏的,除非使用ls -a显示所有文件。 在Vim中输入:version会显示一些有趣的信息,包括文件位置。 如果你不确定~/。Vimrc的意思是看这个问题。
使用find命令可以获取有用的信息
find / -iname "*vimrc*" -type f 2>/dev/null
已经有很多答案了,但有时只需对包含“vimrc”名称的任何内容运行“find”就会很有用。
原因是,这将显示当前系统中实际可用的文件,而不是您可能放入系统中的文件。(你将从:版本中获得的信息,详见其他答案。)
我的系统上的示例结果
在我的系统上产生
/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的共享目录中都安装了两个示例文件,并且在/etc/下还有一些系统范围的配置文件。
在我的系统上,我在~/上也有一个文件。vimrc,但它不会出现在这个列表中,因为它是到另一个文件的链接,存储在~/Linux-Config下。但是您不会有这个目录,它是特定于我在自己的网络上使用的机器。
使用find语法的详细说明
解释:
从根目录/开始查找(查找工作递归进行) 任何包含不区分大小写的regex *vimrc*的东西都可以在前面或后面加上任何东西或什么都没有(*) 类型=文件(不是目录/符号链接等) 将所有错误抛出到/dev/null,否则输出将充斥来自/proc的不可读错误
如果你已经有一个.vimrc文件,这些方法是有效的:
:scriptnames列出了Vim为你加载的所有. Vim文件,包括你的.vimrc文件。
:e $MYVIMRC打开并编辑您正在使用的当前。vimrc,然后使用Ctrl + G在状态栏中查看路径。
推荐文章
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- 如何复制一个选择到OS X剪贴板
- 如何删除(不削减)在Vim?
- Vim:在可视模式下快速选择文本块的方法