echohl,按后面高亮组显示.
回音高亮 错误消息
echo 消息
回音高亮 无
安静跑异步命令:
silent doautocmd User AsyncRun name
haslocaldir,是否有lcd/tcd.
fnameescape,转义文件名.
ssl选项,壳斜杠.
winrestview/winsaveview保存恢复视图.用w:变量.调用后,解置该w:.
caddexpr加表达式结果至快修.
caddexpr a:textlist
//用表达式列表建立快修
noautocmd caddexpr a:textlist
call setqflist(items, 'a')
//置快修列表.
noautocmd call setqflist(items, 'a')
call setqflist([], 'a', info)
noautocmd call setqflist([], 'a', info)
if &buftype == 'quickfix'
//缓冲类型
silent exec 'normal! G'
//跳至尾.
cbottom,光标放至快修尾.
bufwinnr,窗口缓冲号.-1表不存在.
noautocmd,为单个命令,屏蔽自动命令.
noautocmd exec '' . l:quickfixwinnr . 'windo call s:AsyncRun_Job_Cursor()'
noautocmd silent! exec ''.l:winnr.'wincmd w'
wincmd,移动光标窗口.
pumvisible,是否看见弹窗.iconv用法:
let l:text = iconv(l:text, 编码, &编码)
修复路径:
silent! call s:chdir(l:previous_cwd)
安静执行自动命令:
silent exec 'doautocmd QuickFixCmdPre ' . name
silent exec 'doautocmd QuickFixCmdPost '. name
//前面和后面.执行快修命令前/后
exec 'doautocmd QuickFixCmdPre '. name
//不安静
异步工作:
if exists('s:async_job')
call job_status(s:async_job)
如果有异步工作,调用其状态.
"norm! \<esc>"退出.
redrawstatus,重画状态行,
ch_status,通道状态.
ch_read,读通道加选项.
通道状态(a:通道)=='缓冲'
表示,可读通道.
if exists('s:async_job')
call job_status(s:async_job)
有异步工作,返回状态.
if job_status(s:async_job) == 'run'
let l:running = 1
异步工作:
let s:async_job = job_start(l:args, l:options)
//参数,加选项,这才是关键.
let l:success = (job_status(s:async_job) != 'fail')? 1 : 0
silent! call ch_close_in(job_getchannel(s:async_job))
加计时器:
let l:name = 'g:AsyncRun_Job_OnTimer'
let s:async_timer = timer_start(100, l:name, {'repeat':-1})
call s:AsyncRun_Job_AutoCmd(0, s:async_info.auto)
call s:AutoCmd('Start')
redrawstatus!
异步停止,可能错误:
if job_status(s:async_job) == 'run'
if job_stop(s:async_job, l:how)
call s:AutoCmd('Interrupt')
return 0
else
return -2
endif
else
keepalt保持轮换名.
keepalt noautocmd windo call s:WindowCheck(1)
keepalt noautocmd silent! exec ''.l:winnr.'wincmd w'










