-1

我最近为 Windows 安装了 Vim,我正在尝试从 Linux 移植我的 vimrc。

我需要工作的 vimrc 中的 bash 脚本如下:

set nocompatible
source $VIM
behave mswin

let iCanHazVundle=1
let vundle_readme=expand('$VIM/bundle/vundle/README.md')
if !filereadable(vundle_readme)
    echo "Installing Vundle..."
    echo ""
    silent !mkdir $VIM/bundle
    silent !git clone https://github.com/gmarik/vundle $VIM/bundle/vundle
    let iCanHazVundle=0
endif

" required for vundle
filetype off

set rtp+=$VIM/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'Rip-Rip/clang_complete

请注意,这基本上只是检查我的 Vundle 软件包是否已安装(基于自述文件的存在),如果没有安装它们。我加入了第一个Bundle电话,让您了解它是如何执行的。下面的代码和我原来的 Linux 脚本的唯一区别是我将所有条目替换为 Linux 文件系统:~/.vim$VIM. 当我在 Windows Vim 终端中运行 :echo $VIM 时,它给了我正确的路径。该脚本运行,但是它总是无法调用 vundle#rc() 并且随后对于所有Bundle调用都完全失败。请注意,我确实安装了 msysGit。

编辑 mkdir 函数实际上正在工作,我的环境变量在控制台中输入错误。另外,msysGit 需要升级(由于未知原因失败。现在我遇到了问题:

Error detected while processing C:\Program Files (x86)\Vim\_vimrc:
line   58:
E117: Unknown function: vundle#rc
line   62:
E492: Not an editor command: Bundle 'Rip-Rip/clang_complete'

任何建议都非常感谢!

4

1 回答 1

1

看来您遇到的主要问题是线路,

silent !mkdir $VIM/bundle

使用!shell 转义,这会调用外部命令mkdir。但是,此命令在 Windows 上不存在(除非您已经安装了 Cygwin 或类似的并且 GNU 工具在您的路径中)并且使用silent意味着错误消息不会打印在屏幕上。

要在任何操作系统中创建目录,可以使用 Vim 自己的内置mkdir()函数。以下使用字符串连接(使用.运算符)构建目录路径的命令应该可以工作:

call mkdir($VIM . "/bundle")

git如果目录创建正确,只要您已git安装并在您的 Windows 中可用,以下外部命令应该可以工作PATH

于 2016-04-19T20:51:07.823 回答