-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvimrc.example
More file actions
59 lines (54 loc) · 1.48 KB
/
vimrc.example
File metadata and controls
59 lines (54 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function! _Qq(...)
" optional: save before :qq
""if &modified
"" write
""endif
let l:post = {
\ 'exit_cb': function('_QqPost'),
\ 'err_cb': function('_QqErr'),
\ 'err_io': 'pipe',
\ 'out_io': 'null' }
let l:args = ['_qq_vim', expand('%')] + a:000
let l:job = job_start(l:args, l:post)
if job_status(l:job) == 'fail'
echohl ErrorMsg
echomsg "failed to qq!"
echohl None
return
endif
let s:qq_job = l:job
let s:qq_err = []
echohl User1
echomsg 'qq...'
echohl None
endfunction
function! _QqErr(chan, msg)
call add(s:qq_err, a:msg)
endfunction
function! _QqPost(job, status)
if a:status != 0
echohl ErrorMsg
echomsg "failed to qq: status ".a:status.":"
for line in s:qq_err
echomsg line
endfor
echohl None
return
endif
let l:line = line('.')
let l:col = col('.')
""checktime
edit
call cursor(l:line, l:col)
endfunction
function! _Qqq(...)
let l:p = system('_qqq_vim')
let l:p = substitute(l:p, '\n$', '', '')
execute 'edit ' . l:p
endfunction
command! -nargs=* Qq call _Qq()
cnoreabbrev <expr> qq (getcmdtype() == ':' && getcmdline() =~ '^qq$')? 'call _Qq()' : 'qq'
command! -nargs=* Qqq call _Qqq()
cnoreabbrev <expr> qqq (getcmdtype() == ':' && getcmdline() =~ '^qqq$')? 'call _Qqq()' : 'qqq'
cnoreabbrev <expr> qqqq (getcmdtype() == ':' && getcmdline() =~ '^qqqq$')? 'call _Qqq()' : 'qqqq'
cnoreabbrev <expr> qqqqq (getcmdtype() == ':' && getcmdline() =~ '^qqqqq$')? 'call _Qqq()' : 'qqqqq'