V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
bramblex
V2EX  ›  Vim

论如何在一个非面对对象的语言中实现模块系统(把 vim 玩成这样我也是奇葩)

  •  2
     
  •   bramblex · Apr 18, 2015 · 3420 views
    This topic created in 4041 days ago, the information mentioned may be changed or developed.

    引:玩过vim的同学都应该知道vim配置文件是很蛋疼,深入点玩过vim的同学大概知道vim的配置文件其实建立在vim自己的脚本语言vimscript(viml)上面的。但是vimscript这个语言真心蛋疼啊,没有emacs大法的lisp好用啊艹。所以没办法,那就自己造造轮子,让vimscript好用写咯。

    因为用着实在蛋疼,然后自己默默地写了一套类似nodejs里面require()的模块机制出来……对,就是用着蛋疼的vimscript,然后为vimscript写的。

    Github: 代码戳这里,求星星

    好了,废话不多说,直接先上效果来看看我的vimrc长啥样。

    ”vimrc
    let base_path = fnamemodify(resolve(expand('<sfile>:p')), ':h')
    exec 'source ' . resolve(base_path . '/require.vimrc')
    
    let config = Require('config')
    let utils = Require('utils')
    
    Require modules
    
    Error: language "VimL" is not supported

    没错我的vimrc就长这样,聪明的你一定看出来了。关键在哪里?Require!然后再看看被Require的 utils 和 moduels 都是啥。

    ”utils/base.vimrc
    call Exports('utils', Require('utils'))
                \('file', Require('file'))
                \('dict', Require('dict'))
                \('man', Require('man'))
    
    Error: language "VimL" is not supported
    ”moduels/base.vimrc
    Require head
    
    Require bundle
    Require hotkeys/base
    Require themes
    Require type
    
    Require tail
    
    Error: language "VimL" is not supported

    如果你没折腾过Vimscript,你看到这东西一定一点都不激动。因为别的语言中都特么是标配的东西,我这里还需要自己实现。真心泪流满面啊TwT。

    Github: 代码戳这里,求星星

    5 replies    2015-05-29 18:16:23 +08:00
    xiiing
        1
    xiiing  
       Apr 18, 2015
    加个星
    vietor
        2
    vietor  
       Apr 18, 2015 via Android
    记得在Ubuntu上安装,依赖了Ruby,一生黑
    bramblex
        3
    bramblex  
    OP
       Apr 18, 2015
    @xiiing 谢谢猩猩 OwO
    bramblex
        4
    bramblex  
    OP
       Apr 18, 2015
    @vietor 依赖Ruby还好,ruby现在也差不多是unix系标配了
    omph
        5
    omph  
       May 29, 2015
    不明觉厉,星之
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5989 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 01:48 · PVG 09:48 · LAX 18:48 · JFK 21:48
    ♥ Do have faith in what you're doing.