Vim插件无法与Pathogen配合使用

3

我有一台安装了Windows 7的电脑,最近在其中安装了Git(包含Vim在Git目录中)。我尝试安装pathogen,看起来它已经正确安装,因为autoload中没有出现错误消息。我的_vimrc位于Users/用户名,即$HOME,以下内容与pathogen相关。

execute pathogen#infect() //_vimrc starts with this line
call pathogen#helptags()
syntax on
filetype plugin indent on

自动加载和捆绑的路径为:C:/progra~1/git/usr/share/vim/vim74/autoload(和vim74/bundle)

当我将插件(例如NerdTree)克隆到bundle中时,打开Vim时会出现以下消息。

Error detected while processing /usr/share/vim/vim74/bundle/nerdtree/plugin/NERD_tree.vim:
line   16:
E15: Invalid expression: exists("loaded_nerd_tree")^M
line  211:
E171: Missing :endif

我在vim中启动了一个会话,并使用


:help NERD_tree.txt 

但它返回“抱歉,NERD_tree.txt没有帮助”。

有人知道是什么导致了这个问题并且有解决方法吗?

1个回答

2

第一点

所有的配置都应该在$HOME/.vim/(插件、颜色方案等)和$HOME/.vimrc(选项、映射等)中完成。请注意,自从Vim 7.4版本以来,您可以直接将vimrc文件放在$HOME/.vim/中,这使得管理配置变得更加容易。

无论您在/usr/share/vim/中做了什么都应该立即还原回去。

第二点

但是,您的问题是由于行尾符引起的:克隆过程将作者使用的行尾符lf更改为Windows标准的行尾符crlf。因为Vim只能接受lf,所以无法使用您的插件。

原因很可能是您的Git设置中core.autocrlf的值。

下面的命令应该防止Git在checkout/clone/pull等操作中将lf转换为crlf:

 git config --global core.autocrlf false

谢谢!它起作用了。 关于usr/share/vim,那是默认的。当我安装Git时,Vim就是这样来的。当我在autoload中的那个文件夹中安装pathogen时,它起作用了,但是当我尝试使用$HOME中的vim文件夹时,它没有考虑到它。 - Charles
我也遇到了行尾问题。对于我来说,是在有问题的nerdtree文件上执行:set ff=mac解决了这个问题。 - Koshmaar
实际上,这确实有助于解决vim关于^M的问题,但插件没有正确加载。因此,我不得不删除nerdtree并使用更改后的autocrlf为false重新下载。 - Koshmaar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接