Vim 自动清除命令行

Vim 自动清除命令行

使用 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 ''

相关内容