【问题标题】:Vim plugins not working with pathogenVim 插件不适用于病原体
【发布时间】:2015-09-02 19:43:25
【问题描述】:

我有一台装有 Windows 7 的计算机,我最近在其中安装了 Git(在 Git 目录中安装了 Vim)。我尝试安装病原体,显然它安装正确,因为自动加载中没有病原体错误消息。我的 _vimrc 位于 $HOME 的 Users/Username 中,它与病原体有关。

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)来捆绑时,当我打开 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 没有帮助”

有谁知道是什么原因造成的问题并有解决办法吗?

【问题讨论】:

    标签: windows git vim nerdtree pathogen


    【解决方案1】:

    第一

    您的所有配置都应该在$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/etc 上将 lf 转换为 crlf

     git config --global core.autocrlf false
    

    【讨论】:

    • 谢谢!有效。关于 usr/share/vim,这是默认设置。当我安装 Git 时,Vim 就是这样来的。当我在该文件夹的自动加载中安装病原体时,它可以工作,但是当我尝试在 $HOME 中使用 vim 文件夹时,它没有考虑到它。
    • 我也遇到了同样的行尾问题。对我来说,是 :set ff=mac 在有问题的 nerdtree 文件上做了这件事。
    • 实际上它确实有助于 vim 停止喊叫 ^M,但插件没有正确加载。所以我不得不删除 nerdtree 并重新下载,将 autocrlf 更改为 false。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多