1

我在 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 中的 :w 之后返回默认值。

 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 之外似乎找不到解决方案,这是相当具有破坏性的。任何帮助,将不胜感激。

编辑:tree -d -L 2 的输出...

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

1 回答 1

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

于 2014-02-19T11:20:49.297 回答