   #
   # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
   onDidFailToReadFile: (callback) ->
-    @emitter.on 'did-fail-to-read-file', callback
+    this.emitter.on 'did-fail-to-read-file', callback
 
   ###
   Section: Adding and Removing Bindings

      }
    else if hasPartialMatches and shouldUsePartialMatches
      event.preventDefault()
      @emitter.emit 'did-partially-match-binding', {
        keystrokes,
        eventType: event.type,
        partiallyMatchedBindings: partialMatches,
        keyboardEventTarget: target
      }
    else if not dispatchedExactMatch? and not hasPartialMatches
      @emitter.emit 'did-fail-to-match-binding', {
        keystrokes,
        eventType: event.type,
        keyboardEventTarget: target

    # of the keystrokes the user has typed. When populated, the state variables
    # look something like:
    #
    # this.queuedKeystrokes = ['ctrl-a', 'b', 'c']
    # this.queuedKeyboardEvents = [KeyboardEvent, KeyboardEvent, KeyboardEvent]
    #
    # Basically, this `handleKeyboardEvent` function will try to exactly match
    # the user's keystrokes to a binding. If it cant match exactly, it looks for
