使用 vim 时,我喜欢将命令行(打印消息、警告和错误的行)保留为空,因此在保存文件后,我通常会发出 a<C-l>
来重绘屏幕并清除它。
有没有办法自动执行此过程,以便在命令行中打印 n 秒后自动<C-l>
执行?
答案1
以下自动命令可能会执行您想要的操作
" Clear cmd line message
function! s:empty_message(timer)
if mode() ==# 'n'
echon ''
endif
endfunction
augroup cmd_msg_cls
autocmd!
autocmd CmdlineLeave : call timer_start(5000, funcref('s:empty_message'))
augroup END
它将在CmdlineLeave
事件触发后 5 秒清除命令行输出。它有点像你想要的那样工作。您可以根据需要调整时间。
答案2
添加到 @jdhao 答案,您可以使用该CursorHold
事件,该事件使用 的值updatetime
作为超时,并且只要没有按下任何键就会触发。
例如:
autocmd CursorHold * echon ''