写信给vimrc.com?
我在vim安装中设置了病原体,并安装了各种插件写信给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
"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