If you want to compare rows, don't bother with a slow and clumsy self-join, use a windowing function and the lead/lag functions. e.g. to list the interesting events and time between them:
select date, message, lead(date) over (order by date) - date as time_to_next from log where type='interesting';
That only shows 'interesting' events, of course. If you want to show all the other events between the interesting ones as well, add a partition by clause to the windowing function to highlight interesting events, and lose the where clause.
And yeah, vim is a good quick and easy way to explore data. So in postgres, add 'export PAGER="vim -"' to your ~/.psqlrc file, and your query results automatically pop up in vim (may want to switch to unaligned output in that case using the \a toggle).
For people not in the UK who don't know what that is...it's like showing off your new liquid Nitrogen GPU cooling system and your grandma saying "Oh that's nice dear, it's like the one the nurses put in the home last year".
I also had issues where periodically Flash would bring my system to a crawl - I've not seen anyone else mention that problem, but fingers crossed this'll solve that too.
Thus spake the master programmer: "After three days without programming, life becomes meaningless." -- Geoffrey James, "The Tao of Programming"