Decouple more history and buffer methods from view.
Make buffer event loop responsible for moving cursor.