dotfiles/vim/.vim/plugin/functions.vim

34 lines
1.3 KiB
VimL
Raw Normal View History

" This callback will be executed when the entire command is completed
function! BackgroundCommandClose(channel)
" Read the output from the command into the quickfix window
unlet g:backgroundCommandOutput
endfunction
function! RunBackgroundCommand(command)
" Make sure we're running VIM version 8 or higher.
if v:version < 800
echoerr 'RunBackgroundCommand requires VIM version 8 or higher'
return
endif
if exists('g:backgroundCommandOutput')
echo 'Already running task in background'
else
echo 'Running task in background'
" Launch the job.
" Notice that we're only capturing out, and not err here. This is because, for some reason, the callback
" will not actually get hit if we write err out to the same file. Not sure if I'm doing this wrong or?
let g:backgroundCommandOutput = tempname()
call job_start(a:command, {'close_cb': 'BackgroundCommandClose', 'out_io': 'file', 'out_name': g:backgroundCommandOutput})
endif
endfunction
" So we can use :BackgroundCommand to call our function.
command! -nargs=+ -complete=shellcmd RunBackgroundCommand call RunBackgroundCommand(<q-args>)
function! GetCWD()
let l:cwd = system('pwd | rev |cut -d- -f1 | rev | xargs | sed "s/[[:space:]]/\\\\&/g\"')
echo l:cwd
call setline('.', l:cwd)
unlet l:cwd
endfunction