这在FAQ中得到了解决,它提示答案是使用以下命令启动Vim:在那里,但是
runtimepath
选项仍然包含~/.vim
,尤其是~/.vim/after
(因此,例如,如果我随后打开文件类型检测并更改文件类型,则将执行~/.vim/after/syntax/the_relevant_filetype.vim
中的代码)。可以通过在启动时调用以下命令来解决此特定问题:vim -u NONE -U NONE -N -i NONE
...但是我不确定是否:
这是一个可靠的解决方案:是那些唯一可以使用户配置生效的路径吗?还有什么我没想到的吗?
有一种更好的方法可以达到预期的结果。
编辑:这是我要解决的这类问题的一个具体示例。 (尽管我希望该解决方案解决我可能尚未遇到的任何其他可能的问题。):
创建文件〜/ .vim / after / ftplugin /c.vim,其中包含以下内容:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
现在我们有了一些用户安装的配置,我们要忽略。让我们测试一下FAQ提出的解决方案。
使用以下命令运行Vim:
noremap i :echom "This is not default behaviour"<CR>
输入命令:
vim -u NONE -U NONE -N -i NONE
期望的行为:Vim应该进入插入模式。如果不存在任何用户配置,将执行此操作。
观察到的行为:Vim打印出“这不是默认行为”
#1 楼
从Vim 8.0.1554开始(不幸的是,还没有Neovim),您可以使用vim --clean
。 :help bugs
建议使用此方法。 :help --clean
文档:类似于“ -u DEFAULTS -U NONE -i NONE”:
-文件和环境变量的初始化为
跳过
-设置'runtimepath'和'packpath'以排除主目录条目(-u DEFAULTS不会发生)。
-| defaults.vim |脚本已加载,这意味着
'nocompatible':使用Vim默认值
-否| gvimrc |脚本已加载
-不会读取或写入viminfo文件
评论
真好!这比弄乱$ HOME变量要简单得多。 Goodjob Vim开发人员。并感谢您的回答!
–丰富
18年8月3日在8:44
--clean现在也可以在master上与neovim一起使用(github.com/neovim/neovim/commit/…,将包含在0.4.0中),但是不排除主目录。
–克里斯蒂安·克拉森
19年5月3日15:16
(但是,该补丁正在等待移植)
–克里斯蒂安·克拉森
19年5月3日在15:26
#2 楼
消除用户特定文件的一种方法是使用不同的$HOME
值。为了不让任何东西被读取或写入(例如viminfo),可以使用/dev/null
:创建一个临时文件夹,或使用现有的文件夹(例如viminfo
):HOME=/dev/null vim -u NONE
使用这样的
/tmp
,可能不需要$HOME
,具体取决于管理员添加的内容到系统范围内的-u NONE
。例如,在我管理的所有实验室系统上,我都添加了一个vimrc
(由打包的Vim的默认/etc/vim/vimrc.local
提供),该/etc/vim/vimrc
,nocompatible
等也已设置,并且还具有syntax
。评论
vim -i NONE禁止加载viminfo
–克里斯蒂安·布拉班特(Christian Brabandt)
16年1月13日在17:53
仅出于后人的缘故,我想指出的是,这是我接受的答案,直到在Vim中添加了--clean选项。
–丰富
20年8月6日在12:51
#3 楼
我不能回答太多,但是我没有提到一个要点,然后重新回答标题中的内容我怎样才能让Vim忽略所有用户配置,就好像是刚安装的
?
有人建议使用
vim -u NONE
或vim -u NORC
在某种程度上,这些准系统不仅仅是没有vimrc文件。当我键入“ i”时,它不会说“插入”。您可能希望它仍然说“插入”。如果以空白的vimrc文件启动vim,则会显示insert
,这是因为vim首先加载默认配置。
您可以将vim指向该默认文件以获取vimrc文件为空白的效果。检查是否具有
/etc/vim/vimrc
,并且可以执行vim -u /etc/vim/vimrc
或在osx上执行,默认文件为/usr/share/vim/vicmrc
评论
我认为这正是vim --clean将为您做的。
–quemeraisc
19年5月3日,12:18
@quemeraisc vim --clean将加载defaults.vim。这个答案是指系统vimrc(请参阅:help system-vimrc。),我认为它不是由vim --clean加载的。
–丰富
19-09-18在11:05
@barlap:为避免与defaults.vim混淆(请参阅:help defaults.vim),最好在此答案中将默认配置的措辞更改为system vimrc。甚至更好,在答案中讨论两者!
–丰富
19-09-18在11:07
#4 楼
从Vim-FAQ 2.5:2.5。我在Vim中遇到“ xyz”(某些)问题。如何确定我的安装程序或Vim是一个
问题? /我是否在Vim中发现错误?
首先,您需要找出错误是在实际的
运行时文件中还是在与Vim一起分发的任何插件中,或者是否是
是.vimrc
或.gvimrc中任何配置选项的简单副作用。因此,首先,像这样启动vim:
vim -u NONE -U NONE -N -i NONE
这将以不兼容模式(-N)启动Vim,而不读取您的
viminfo文件(-i NONE) ,而不读取任何配置文件(-u
NONE表示不读取.vimrc文件,-U NONE表示不读取.gvimrc
文件)甚至插件。
评论
尽管出现在FAQ中,但由于问题中提到的原因,这实际上不起作用。
–丰富
16年1月13日在17:57
@Rich从您对问题的评论中:确保我所看到的行为均不是由用户配置引起的-然后看来您正在尝试执行本FAQ中所解释的内容。我已经重新阅读了您的问题,但仍然不明白您提到的原因是什么。
–mMontu
16年1月13日18:00
我确实确实在尝试完全按照FAQ中的说明进行操作。但是由于runtimepath设置,它提供的解决方案不起作用。
–丰富
16年1月13日在18:06
运行时路径到底有什么问题?似乎是此选项的默认设置,如:help rtp中所述。这个值如何影响您的测试?
–mMontu
16年1月13日在18:41
@Rich我的意思是,打开文件类型检测后,与全新安装相比有什么区别吗?
–mMontu
16年1月13日在19:01
评论
在类似Unix的系统上,如果要执行以下操作:HOME = / dev / null vim -u NONE?@muru不错的主意,可能值得添加作为答案,但这并不完美。您显然失去了例如:cd〜,但viminfo文件的默认位置也位于$ HOME中,这可能导致E138。我想创建一个新的空目录并将其用于$ HOME可能是最好的解决方案。
@muru我刚想到,如果您要设置$ HOME,那么大概也不需要指定-u NONE?
在这种情况下,/ tmp可能更好,这是我的第一个想法,但是后来我选择了/ dev / null作为黑洞。 ...或者类似HOME = $(mktemp -d)vim ....
如果不使用-u NONE,它不会读取系统vimrc吗?我想这取决于您需要的行为。