Eric's Blog 时光荏苒,岁月如梭

如何使用 SpaceVim 的 Job API

2022-05-03
Eric Wong

因为 Vim8 和 Neovim 实现的 job 函数存在很大的区别,并且使用的方式也是不一样的。在制作插件时,如果需要同时兼容 Vim 和 Neovim 就会存在很大的麻烦。因此,在 SpaceVim 中,实现了一个 job API,使用示例如下:

let  s:JOB = SpaceVim#api#import('job')
let s:command = ['echo', 'hello world']
function! s:stdout(id, data, event)
    " the data is a list of string
    for line in a:data
        echo line
    endfor
endf
call s:JOB.start(s:command, {
    \ 'on_stdout' : function('s:stdout'),
    \ }
    \ )

这个 API 的实现,参考了 neovim job 的模型。支持如下参数:

  • on_stdout
  • on_stderr
  • on_exit

延生阅读

分享到:

评论

目前只支持使用邮件参与评论。