IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    关于pathogen安装vba包的问题

    jiazhoulvke\'s Blog on jiazhoulvke\'s Blog发表于 2012-01-06 00:00:00
    love 0

    在之前的一篇文章中我推荐了几款vim比较实用的插件,其中第一款就是pathogen,是的,虽然只有短短两百来行的代码,但就像我给它的评分一样:Life Changing。

    为了解决文件混乱的问题vim搞出了vba这种格式,想法很好,但实际应用中效果却不能尽如人意。因为并非所有的插件发布者都会把插件打包成vba格式,很多都只是简单的压缩成zip或者tar.gz之类的压缩包,假如插件只有一个vim文件的话连压缩都不用了……

    而使用pathogen的话,则每个插件都会拥有一个自己的文件夹,这样要删除某个插件直接找到这个插件所在的文件夹,然后删掉它就行了。

    好吧,前面说了一大堆废话来凑字数,就是为了引出下面的正题。

    现在很多插件都只发布vba包,之前我不知道该怎么解压,用了一种很二的方法:先按照正常的方法安装这个vba包,然后在bundle目录里新建一个目录,再把刚才安装的那些文件移进去……我忘了有伟大的”:h”。……

    用”:h vba”可以看到相关帮助,其实只需要几步就能安装:

    1.先创建相应的文件夹。其中的plugin_name是实际的插件名

    mkdir ~/.vim/bundle/plugin_name
    

    2.用vim打开需要安装的vba包。

    vim someplugin.vba
    

    3.在vim中执行下面的代码:

    :UseVimball ~/.vim/bundle/plugin_name
    

    作为一个蛋疼得必须要治的人,我写了小插件,貌似会更方便一点:

    "--------------------------------------------------
    " pathogen_install_vba.vim
    " Author:       jiazhoulvke
    " Email:        jiazhoulvke [AT] gmail.com
    " Blog:         http://jiazhoulvke.com
    " Version:      0.1
    "--------------------------------------------------
    
    if &cp; || exists("g:loaded_pathogen_install_vba")
        finish
    endif
    let g:loaded_pathogen_install_vba="v0.1"
    
    command! PathogenInstallVBA :call Pathogen_Install_VBA()
    
    function! Pathogen_Install_VBA()
        let jzlk_extname=expand("%:e")
        if jzlk_extname!="vba"
            echo '这个文件不是vba安装包哦。'
        else
            let vba_dir_name=input("插件文件夹名: ")
            if has("win32")
                let vba_dir_path=$VIM . "\\vimfiles\\bundle\\" . vba_dir_name
                call system("md " . vba_dir_path)
            else
                let vba_dir_path="~/.vim/bundle/" . vba_dir_name
                call system("mkdir ". vba_dir_path)
            endif
            execute 'UseVimball ' . vba_dir_path
        endif
    endfunction
    

    安装这个插件,然后以后碰到vba格式的插件,载入后vim里输入:PathogenInstallVBA,会提示输入文件夹名,输入后回车,OK。



沪ICP备19023445号-2号
友情链接