写信给vimrc.com?

写信给vimrc.com?,vim,pathogen,Vim,Pathogen,我在vim安装中设置了病原体,并安装了各种插件 "Call pathogen to set up various plugins "filetype off call pathogen#infect() call pathogen#incubate() call pathogen#helptags() 当我在vim中写入我的.vimrc时,下面的命令应该会重新加载该文件(它看起来确实有效) 然而,在写入.vimrc之后,病原体不会重新加载 这是:set rtp?的输出?启动vim后: runt

我在vim安装中设置了病原体,并安装了各种插件

"Call pathogen to set up various plugins
"filetype off
call pathogen#infect()
call pathogen#incubate()
call pathogen#helptags()
当我在vim中写入我的.vimrc时,下面的命令应该会重新加载该文件(它看起来确实有效)

然而,在写入.vimrc之后,病原体不会重新加载

这是:set rtp?的输出?启动vim后:

runtimepath=~/.vim,~/.vim/bundle/Jellybeans,~/.vim/bundle/TwitVim,~/.vim/bundl
e/badwolf,~/.vim/bundle/calendar,~/.vim/bundle/tagbar,~/.vim/bundle/vim-airline,
~/.vim/bundle/vim-colors-solarized,~/.vim/bundle/vim-colorschemes,~/.vim/bundle/
vizardry,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/s
hare/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after 
在:w in.vimrc之后,它将返回默认值

 runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/
vim74,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
我尝试添加以下修改,但没有效果

if has("autocmd")
    autocmd bufwritepost .vimrc source $MYVIMRC
    autocmd bufwritepost .vimrc call pathogen#incubate()
endif
我一直在四处寻找,似乎除了每次修改我的.vimrc时重新启动vim之外,找不到其他解决方案,这相当具有破坏性。任何帮助都将不胜感激

编辑:树-d-L2的输出

.
├── autoload
└── bundle
    ├── badwolf
    ├── calendar
    ├── color~
    ├── Jellybeans
    ├── tagbar
    ├── TwitVim
    ├── vim-airline
    ├── vim-colorschemes
    ├── vim-colors-solarized
    └── vizardry

问题可能是
.vimrc
上的以下行:

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim
$VIMRUNTIME/debian.vim
上有一行重置运行时路径:

" Debian system-wide default configuration Vim

set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after

当启动时加载.vimrc时,问题不会发生,因为这些行是在
调用病原体#infect()之前执行的。重新加载.vimrc时,您正在覆盖
&rtp
,但病原体不会再次设置它(可能是因为
s:done\u bundles
已设置)。

为什么调用
病原体孵化()
?它被
病原体#infect()
调用,因此没有理由包含它。此外,我无法从您发布的代码片段中复制这一点。另外,请确保将您的AutoCMD放在我添加的组中。我相信,在程序提示后不久,我添加了病原体孵化器。在诊断问题时,我想我尝试了不同的执行病原体#传染(),调用病原体#传染(),并称之为病原体#孵化()。。。有一段时间我只是认为病原体传染病已经被破坏了。然而,它似乎确实有效,直到我为autocmd编写.vimrc.As之前,我会解决这个问题,但是保存.vimrc似乎不应该重置rtp,对吗?我可以把整个文件贴在pastebin上。这是一个大杂烩,因为我是新的维姆。好吧,我做了显而易见的事。注释掉autocmd bufwritepost.vimrc source$MYVIMRC
似乎可以解决问题。不过我喜欢这个特性,因为我经常发现新特性并经常修改.vimrc,所以在不破坏病原体的情况下实现它的任何帮助都会很好。下面的代码修复了它:
if(exists(“g:loaded_病原体”)==0)运行时!debian.vim endif
@thoss
!exists()
是一个比exists()==0更容易理解的习惯用法,但它们的效果当然是一样的。对了,我在发布后不久就意识到——我输入错误了!存在命令并认为语法在vim中不起作用。
" Debian system-wide default configuration Vim

set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after