mirror of
https://github.com/prabirshrestha/async.vim.git
synced 2026-06-17 15:37:36 +02:00
b8289cecb12d79f334742bb40fc7d7d9967f4094
async.vim
normalize async job control api for vim and neovim
sample usage
function! s:handler(job_id, data, event_type)
echo a:job_id . ' ' . a:event_type
echo join(a:data, "\n")
endfunction
if has('win32') || has('win64')
let argv = ['cmd', '/c', 'dir c:\ /b']
else
let argv = ['bash', '-c', 'ls']
endif
let jobid = async#job#start(argv, {
\ 'on_stdout': function('s:handler'),
\ 'on_stderr': function('s:handler'),
\ 'on_exit': function('s:handler'),
\ })
if jobid > 0
echom 'job started'
else
echom 'job failed to start'
endif
" call async#job#stop(job)
Todos
- Fallback to sync
system()calls in vim that doesn't supportjob job_stopandjob_sendis treated as noop when usingsystem()on_stderrdoesn't work when usingsystem()- Fallback to python/ruby threads and vimproc instead of using
system()for better compatibility (PRs welcome!!!)
Languages
Vim Script
95.7%
Shell
4.3%