将vimrc翻译为Windows

时间:2016-04-19 18:08:32

标签: linux windows bash vim vundle

我最近安装了Vim for Windows,我正试图从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'

非常感谢任何建议!

1 个答案:

答案 0 :(得分:1)

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

silent !mkdir $VIM/bundle

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

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

call mkdir($VIM . "/bundle")

如果正确创建了目录,只要您在Windows git中安装并git {。}},就可以使用以下外部PATH命令。