'Initialize vi editingmode'

def init_editing_mode(self, e):

    self.show_all_if_ambiguous = 'on'
    self.key_dispatch = {}
    self.__vi_insert_mode = None
    self._vi_command = None
    self._vi_command_edit = None
    self._vi_key_find_char = None
    self._vi_key_find_direction = True
    self._vi_yank_buffer = None
    self._vi_multiplier1 = ''
    self._vi_multiplier2 = ''
    self._vi_undo_stack = []
    self._vi_undo_cursor = (-1)
    self._vi_current = None
    self._vi_search_text = ''
    self.vi_save_line()
    self.vi_set_insert_mode(True)
    for c in range(ord('    '), 127):
        self._bind_key(('%s' % chr(c)), self.vi_key)
    self._bind_key('BackSpace', self.vi_backspace)
    self._bind_key('Escape', self.vi_escape)
    self._bind_key('Return', self.vi_accept_line)
    self._bind_key('Left', self.backward_char)
    self._bind_key('Right', self.forward_char)
    self._bind_key('Home', self.beginning_of_line)
    self._bind_key('End', self.end_of_line)
    self._bind_key('Delete', self.delete_char)
    self._bind_key('Control-d', self.vi_eof)
    self._bind_key('Control-z', self.vi_eof)
    self._bind_key('Control-r', self.vi_redo)
    self._bind_key('Up', self.vi_arrow_up)
    self._bind_key('Control-p', self.vi_up)
    self._bind_key('Down', self.vi_arrow_down)
    self._bind_key('Control-n', self.vi_down)
    self._bind_key('Tab', self.vi_complete)
