为了确保行为不受我的个人配置的影响,我想以一种忽略所有用户安装的配置文件的方式启动Vim ,就好像Vim刚刚是第一次全新安装并且用户已经在运行它一样立即。
这在FAQ中得到解决,该FAQ提示答案是使用以下命令启动Vim:
vim -u NONE -U NONE -N -i NONE
这可以解决大部分问题,但是该runtimepath
选项仍然包含~/.vim
,尤其是,~/.vim/after
(例如,如果我随后打开文件类型检测并更改文件类型,~/.vim/after/syntax/the_relevant_filetype.vim
则将执行其中的代码)。
我可以通过在启动时调用以下命令来解决此特定问题:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
...但是我不确定是否:
- 这是一个可靠的解决方案:是那些唯一可以使用户配置生效的路径吗?还有什么我没想到的吗?
- 有一种实现所需结果的更好方法。
*通过使用--cmd
或-u vimrc
shell参数,或仅通过手动键入它们。
编辑:这是我要解决的这类问题的一个具体示例。(尽管我希望该解决方案可以解决我可能尚未遇到的任何其他可能的问题。):
创建一个文件〜/ .vim / after / ftplugin / c.vim,其中包含以下内容:
noremap i :echom "This is not default behaviour"<CR>
现在,我们有一些要忽略的用户安装配置。让我们测试常见问题解答建议的解决方案。
使用以下命令运行Vim:
vim -u NONE -U NONE -N -i NONE
输入命令:
:filetype plugin on :set ft=c i
期望的行为:Vim应该进入插入模式。如果不存在用户配置,将执行此操作。
观察到的行为:Vim打印出“这不是默认行为”
:cd ~
,但是viminfo
文件的默认位置在$ HOME中,这可能会导致E138。我猜创建一个新的空目录并将其用于$ HOME可能是最好的解决方案。
-u NONE
?
/tmp
可能会更好,这是我的第一个想法,但是后来我选择了/ dev / null作为黑洞。...或类似的东西HOME=$(mktemp -d) vim ...
。
-u NONE
吗?我想这取决于您需要的行为。
HOME=/dev/null vim -u NONE
?