More working vi-mode, still not entirely