'Search backward through the history for the string of characters
between the start of the current line and the point. This is a
non-incremental search. By default, this command is unbound.'

def history_search_backward(self, e):

    if (self.previous_func and hasattr(self._history, self.previous_func.__name__)):
        self._history.lastcommand = getattr(self._history, self.previous_func.__name__)
    else:
        self._history.lastcommand = None
    q = self._history.history_search_backward(self.l_buffer)
    self.l_buffer = q
    self.l_buffer.point = q.point
