Add fish vi mode support

Replaces #879 
Fixes #878