linux - 将 vimrc 转换为 Windows

标签 linux windows bash vim vundle

我最近安装了 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 脚本的唯一区别是我用 $VIM 替换了 Linux 文件系统的所有条目: ~/.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'

非常感谢任何建议!

最佳答案

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

silent !mkdir $VIM/bundle

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

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

call mkdir($VIM . "/bundle")

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

关于linux - 将 vimrc 转换为 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36726212/

相关文章:

c# - 如何从 Windows 10 获取当前 Azure Active Directory (AAD) 用户电子邮件

java - 如何从 Ant 启动聚合 jetty-server JAR?

linux - 在 concat() 中的 csv 中添加换行符

bash - 如何分析 Bash shell 脚本启动缓慢的情况?

linux - 如何在 bash 中将我的 .txt 文件转换为 .json?

linux - 期望脚本处理 RSA 指纹 key

windows - 如何使用 Delphi 让 Toast 通知保留在 Windows 10 操作中心

linux - 如果未设置环境变量,如何记录?

linux - bash 脚本中的变量未按预期工作

linux - 如何用 jenkins 动态 build_number 替换 efs 文件/代码中的 ${BUILD_NUMBER} 变量