docs: def init_editing_mode(self, e): # (M-C-j)
          '''Initialize vi editingmode'''
          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)
          # make ' ' to ~ self insert
          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)