在这问题,吉尔斯回答道
另一种可能性是
tail -f
运行Emacsshell 缓冲区并使用 Emacs 的语法着色功能。
因为我是 vim 用户,所以我想这样做维姆, 不是emacs。
做维姆有这个功能吗?
答案1
答案2
我喜欢它简短且没有大量的黑客或外部脚本。您可以在需要时从 ex(在 vim 中)运行此 oneliner(或将每个命令放入 vimrc 中,以便在打开日志文件时使用。)
:set autoread | au CursorHold * checktime | call feedkeys("lh")
另外你还可以:set syntax=logtalk
给日志着色
(如果您想跳(几乎)到文件末尾,只需使用“G”而不是带有 feedkey 的“lh”)
解释:
autoread
:从外部更改时读取文件(但它本身不能工作,没有内部计时器或类似的东西。它只会在 vim 执行操作时读取文件,例如 ex 中的命令:!
CursorHold * checktime
:当用户在指定的时间内updatetime
(默认为 4000 毫秒)没有移动光标checktime
时执行,检查来自文件外部的更改call feedkeys("lh")
:光标向右移动一次,然后向左移动一次。然后什么也没有发生(...这意味着,它CursorHold
被触发了,这意味着我们有一个环形)
要在使用时停止滚动call feedkeys("G")
,请执行:set noautoread
- 现在 vim 会告诉您文件已更改并询问是否要读取更改)
我喜欢在 vim 中查看日志文件(而不是 tail -f),例如,当您在没有 screen/tmux 的 ssh 会话中工作时。此外,如果需要,您可以直接从日志文件中复制,或者直接保存输出,或者...您可以使用 vim 执行的任何操作:)