V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wsdjeg
V2EX  ›  Vim

详解 Vim 8.0 的一些新特新

  •  
  •   wsdjeg · 2017-06-17 09:29:30 +08:00 · 3907 次点击
    这是一个创建于 2519 天前的主题,其中的信息可能已经有所发展或是发生改变。

    定时器( timer )

    vim 需要支持 +timers 特性

    启动定时器

    timer_start({毫秒}, {回调函数}[,{选项}])
    

    Vim 中这个方法将创建一个计时器,并且返回这个定时器的 ID, 这个 ID 可以被以下方法使用:

    获取定时器信息

    timer_info([{ID}])
    

    这个方法会返回一个存储定时器信息的列表, 当编号为 ID 的定时器不存在,将返回一个空的列表,当直接调用这个方法, 而不传递任何参数时,将返回所有定时器的信息。返回列表中每一个元素实际上是一个字典数据类型,具体的结构如下:

       {
         "id" : 该定时器的 ID,
         "time" : 定时器启动是所设置的毫秒数,
         "remaining" : 距定时器启动还剩余的毫秒数,
         "repeat" : 定时器还需要重复执行的次数,无限执行则返回 -1,
         "callback" : 回调函数,
         "paused" : 是否被暂停,是则返回 1,否则返回 0
       }
         
    

    暂停定时器

    timer_pause({ID} , {是否})
    

    这个方法接受 2 个参数,第一个参数是 定时器的 ID, 第二个参数是决定是 暂停 还是 取消暂停 的关键,当第二个参数是一个非 0 数值,或非空字符串,则该定时器被暂停,否则即为取消暂停。

    停止定时器

    timer_stop([{ID}])
    

    停止一个编号为 ID 的定时器,ID 即为 timer_start() 方法的返回值,因此必须为数值,即便编号为 ID 的定时器不存在,这个方法也不会报错。

    另外一个方法 timer_stopall(), 将停止所有定时器。就个人来看 vim 这个方法设计并不完美, 一个软件的方法命名应该存在一定的规则,比如前面的 timer_info() 就是一个可变参数的方法,当无参执行是返回所有定时器的信息,那么这个 timer_staop() 应该也是可以参数方法,无参执行时取消所有定时器。当然了这个仅仅是个人意见。

    查阅跟多 Vim 中文教程,请阅读: https://github.com/wsdjeg/vim-galore-zh_cn

    wsdjeg
        1
    wsdjeg  
    OP
       2017-06-17 09:33:19 +08:00
    V2ex 居然没有草稿箱的功能,大篇幅的教程无法操作呀,看来只能后面追加了。 给大家带来不便利,不好意思。
    kmahyyg
        2
    kmahyyg  
       2017-06-17 09:48:02 +08:00 via Android
    @Livid 借这个帖子顺手向 L 大请求下弄个类似知乎回答草稿的玩意,不然要写长回复和帖子的时候,一旦突然 502,问题就大了。另外,最近 502 越来越频繁了,还请 L 大检查一下。谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3177 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 759ms · UTC 13:20 · PVG 21:20 · LAX 06:20 · JFK 09:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.