A vim plugin for running multiple process asynchronously base on neomake.
A vim plugin for running multiple process asynchronously base on neomake.
errorformat
option seted properly.Use vim-plug:
Plug 'neomake/neomake'
Plug 'tracyone/neomake-multiprocess'
:h neomakemp.txt
neomakemp#run_command(command [, callback] [,arglist] [, flag])
Run command
asynchronously:
callback
is a Funcref
variable which will be called after command
exit.arglist
is a list
variable which will be passed to callback
flag
specify whether open quickfix window after command exited.Global search charactor containing a match to the given PATTERN:
neomakemp#global_search(pattern [, flag])
flag
is bit base variable:
Shortcut | mode | Description |
---|---|---|
<Leader>vv |
visual,normal | global search selected word or under current curosr |
<Leader>vb |
visual,normal | searching through all existing buffers |
<Leader>vg |
visual,normal | searching in current file |
<Leader>vr |
normal | run command from user input |
<Leader>vs |
normal | global search from user input |
you can remap it:
"search words on current cursor.
nmap <yourkey> <Plug>(neomakemp_global_search)
"run commands from user input
nmap <yourkey> <Plug>(neomakemp_run_command)
"search words from user input(regular expression)
nmap <yourkey> <Plug>(neomakemp_global_search2)
"search word on current cursor in exist buffers
nmap <yourkey> <Plug>(neomakemp_global_search_buf)
"search word in current file
nmap <yourkey> <Plug>(neomakemp_global_search_cur_file)
Name | Description |
---|---|
g:neomakemp_grep_command | rg , ag , grep or git |
g:neomakemp_exclude_files | list variable,specify the ignore file |
g:neomakemp_exclude_dirs | list variable,specify the ignore directory |
Config example:
"autodetect the existence of commands and select the faster one(rg > ag > grep)
let g:neomakemp_grep_command = "ag"
"following is default value
let g:neomakemp_exclude_files=['*.jpg', '*.png', '*.min.js', '*.swp', '*.pyc','*.out','*.o']
let g:neomakemp_exclude_dirs=[ '.git', 'bin', 'log', 'build', 'node_modules', '.bundle', '.tmp','.svn' ]
Quickfix window will be opened under following condition:
flag
is equal to 1Display running status of commands in vim-airline:
let g:airline_section_error = airline#section#create_right(['%{neomakemp#run_status()}'])
Display running status in vim's buildin statusline:
let statusline.=neomakemp#run_status()
Following example showing how to generate cscope file asynchronously.
function! s:AddCscopeOut(read_project,...)
if a:read_project == 1
if empty(glob('.project'))
exec 'silent! cs add cscope.out'
else
for s:line in readfile('.project', '')
exec 'silent! cs add '.s:line.'/cscope.out'
endfor
endif
else
if a:0 == 1
exec 'cs add '.a:1.'/cscope.out'
else
exec 'silent! cs add cscope.out'
endif
endif
endfunction
let l:gen_cscope_files='find ' .a:dir. ' -name "*.[chsS]" > ' . l:cscopefiles
call neomakemp#RunCommand(l:gen_cscope_files.'&&cscope -Rbkq -i '.l:cscopefiles, function('<SID>AddCscopeOut'),[0,a:dir])