def init_editing_mode(self, e): # (C-e)
        self._bind_exit_key('Control-d')
        self._bind_exit_key('Control-z')

        # I often accidentally hold the shift or control while typing space
        self._bind_key('space',       self.self_insert)
        self._bind_key('Shift-space',       self.self_insert)
        self._bind_key('Control-space',     self.self_insert)
        self._bind_key('Return',            self.accept_line)
        self._bind_key('Left',              self.backward_char)
        self._bind_key('Control-b',         self.backward_char)
        self._bind_key('Right',             self.forward_char)
        self._bind_key('Control-f',         self.forward_char)
        self._bind_key('BackSpace',         self.backward_delete_char)
        self._bind_key('Control-BackSpace', self.backward_delete_word)
        
        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.delete_char)
        self._bind_key('Clear',             self.clear_screen)
        self._bind_key('Alt-f',             self.forward_word)
        self._bind_key('Alt-b',             self.backward_word)
        self._bind_key('Control-l',         self.clear_screen)
        self._bind_key('Control-p',         self.previous_history)
        self._bind_key('Up',                self.history_search_backward)
        self._bind_key('Control-n',         self.next_history)
        self._bind_key('Down',              self.history_search_forward)
        self._bind_key('Control-a',         self.beginning_of_line)
        self._bind_key('Control-e',         self.end_of_line)
        self._bind_key('Alt-<',             self.beginning_of_history)
        self._bind_key('Alt->',             self.end_of_history)
        self._bind_key('Control-r',         self.reverse_search_history)
        self._bind_key('Control-s',         self.forward_search_history)
        self._bind_key('Alt-p',             self.non_incremental_reverse_search_history)
        self._bind_key('Alt-n',             self.non_incremental_forward_search_history)
        self._bind_key('Control-z',         self.undo)
        self._bind_key('Control-_',         self.undo)
        self._bind_key('Escape',            self.kill_whole_line)
        self._bind_key('Meta-d',            self.kill_word)
        self._bind_key('Control-Delete',       self.forward_delete_word)
        self._bind_key('Control-w',         self.unix_word_rubout)
        #self._bind_key('Control-Shift-v',   self.quoted_insert)
        self._bind_key('Control-v',         self.paste)
        self._bind_key('Alt-v',             self.ipython_paste)
        self._bind_key('Control-y',         self.yank)
        self._bind_key('Control-k',         self.kill_line)
        self._bind_key('Control-m',         self.set_mark)
        self._bind_key('Control-q',         self.copy_region_to_clipboard)
#        self._bind_key('Control-shift-k',  self.kill_whole_line)
        self._bind_key('Control-Shift-v',   self.paste_mulitline_code)
        self._bind_key("Control-Right",     self.forward_word_end)
        self._bind_key("Control-Left",      self.backward_word)
        self._bind_key("Shift-Right",       self.forward_char_extend_selection)
        self._bind_key("Shift-Left",        self.backward_char_extend_selection)
        self._bind_key("Shift-Control-Right",     self.forward_word_end_extend_selection)
        self._bind_key("Shift-Control-Left",     self.backward_word_extend_selection)
        self._bind_key("Shift-Home",        self.beginning_of_line_extend_selection)
        self._bind_key("Shift-End",         self.end_of_line_extend_selection)
        self._bind_key("numpad0",           self.self_insert)
        self._bind_key("numpad1",           self.self_insert)
        self._bind_key("numpad2",           self.self_insert)
        self._bind_key("numpad3",           self.self_insert)
        self._bind_key("numpad4",           self.self_insert)
        self._bind_key("numpad5",           self.self_insert)
        self._bind_key("numpad6",           self.self_insert)
        self._bind_key("numpad7",           self.self_insert)
        self._bind_key("numpad8",           self.self_insert)
        self._bind_key("numpad9",           self.self_insert)
        self._bind_key("add",               self.self_insert)
        self._bind_key("subtract",          self.self_insert)
        self._bind_key("multiply",          self.self_insert)
        self._bind_key("divide",            self.self_insert)
        self._bind_key("vk_decimal",        self.self_insert)
        log("RUNNING INIT EMACS")

# make it case insensitive
When in vi command mode, this causes a switch to emacs editing
dataset/ETHPy150Open deanhiller/databus/webapp/play1.3.x/python/Lib/site-packages/pyreadline/modes/emacs.py/EmacsMode.init_editing_mode