     @hintMarkerContainingDiv = DomUtils.addElementList (marker for marker in @hintMarkers when marker.isLocalMarker),
       id: "vimiumHintMarkerContainer", className: "vimiumReset"
 
+  # TODO(smblott) This is currently doing two somewhat independent things.  We should refactor it to "update
+  # @mode" and "update mode indicator".
   setOpenLinkMode: (@mode, shouldPropagateToOtherFrames = true) ->
-    @hintMode.setIndicator @mode.indicator if windowIsFocused()
+    @hintMode.setIndicator @formatIndicator @mode.indicator if windowIsFocused()
     if shouldPropagateToOtherFrames
       HintCoordinator.sendMessage "setOpenLinkMode", modeIndex: availableModes.indexOf @mode
+
+  formatIndicator: (indicator) ->
+    typedCharacters = @markerMatcher.linkTextKeystrokeQueue?.join("") ? ""
+    indicator + (if typedCharacters then ": '#{typedCharacters}'" else "") + "."
 
   #
   # Creates a link marker for the given link.

    else
      @hideMarker marker for marker in @hintMarkers
      @showMarker matched, @markerMatcher.hintKeystrokeQueue.length for matched in linksMatched

  # When only one hint remains, activate it in the appropriate way.  The current frame may or may not contain
  # the matched link, and may or may not have the focus.  The resulting four cases are accounted for here by

      HUD.showForDuration "No link to yank.", 2000
OPEN_INCOGNITO =
  name: "incognito"
  indicator: "Open link in incognito window"
  linkActivator: (link) -> chrome.runtime.sendMessage handler: 'openUrlInIncognito', url: link.href
DOWNLOAD_LINK_URL =
  name: "download"
  indicator: "Download link URL"
  clickModifiers: altKey: true, ctrlKey: false, metaKey: false

availableModes = [OPEN_IN_CURRENT_TAB, OPEN_IN_NEW_BG_TAB, OPEN_IN_NEW_FG_TAB, OPEN_WITH_QUEUE, COPY_LINK_URL,
