我想使用gvim查看正在连续更新的日志文件,这样我总能看到最后更新的行,就像unix中的tail命令一样。有可能吗?
答案 0 :(得分:40)
答案 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!无论什么时候需要更新。