写给.vimrc打破病原体?

时间:2014-02-18 23:45:46

标签: vim pathogen

我在我的vim安装中安装了病原体并安装了各种插件。

"Call pathogen to set up various plugins
"filetype off
call pathogen#infect()
call pathogen#incubate()
call pathogen#helptags()

当我在vim中编写.vimrc时,以下命令应该重新加载文件(它看起来确实有用)。

" Source the vimrc file after saving it
if has("autocmd")
  autocmd bufwritepost .vimrc source $MYVIMRC
endif

在写完.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 

之后:在.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 -L 2 ...

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

1 个答案:

答案 0 :(得分:1)

问题可能是.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时不会发生此问题,因为这些行在call pathogen#infect()之前执行。当您重新加载.vimrc时,您将覆盖&rtp,但病原体不会再次设置(可能因为s:done_bundles已设置)。