gvim的尾部功能

时间:2009-05-15 09:22:40

标签: vim

我想使用gvim查看正在连续更新的日志文件,这样我总能看到最后更新的行,就像unix中的tail命令一样。有可能吗?

3 个答案:

答案 0 :(得分:40)

打开日志文件和

:setlocal autoread

Tail Bundle网站上有一个插件(vim)。

答案 1 :(得分:4)

我喜欢它简短,没有很多黑客或外部脚本。 您可以在需要时从ex(whithin vim)运行此oneliner(或将每个命令放在vimrc中,以便打开日志文件时。)

:set autoread | au CursorHold * checktime | call feedkeys("lh")

此外,您可以:set syntax=logtalk为日志着色

(如果您想跳转(差不多)到文件的末尾,只需使用“G”代替“lh”和feedkeys)

说明:

  • autoread:从外部更改时读取文件(但它本身不起作用,没有内部计时器或类似的东西。它只会在vim执行操作时读取文件,如ex :!
  • 中的命令
  • CursorHold * checktime:当用户未将光标移动updatetime中指定的时间(默认为4000毫秒)时,执行checktime,检查是否有变化在文件外
  • call feedkeys("lh"):光标向左,向右和向后移动。没有任何反应(......这意味着,CursorHold被触发,这意味着我们有一个循环

要在使用call feedkeys("G")时停止滚动,请执行:set noautoread - 现在vim将告知,文件已更改并询问是否要阅读更改

*来自此answer(参考PhanHaiQuang的答案和flukus的评论)

答案 2 :(得分:2)

或者vim 7.x上不太优雅的解决方案就是:e!无论什么时候需要更新。