     return { start, end }
 
   _onToolbar: (range, value) ->
+    this._toggle(range, value)
+
+  _onKeyboard: ->
+    range = @quill.getSelection()
+    this._toggle(range, true)
+
+  _toggle: (range, value) ->
     return unless range
     if value and !range.isCollapsed()
       this.setMode(this._suggestURL(range), true)

      <a href="javascript:;" class="change">Change</a>
      <a href="javascript:;" class="remove">Remove</a>
      <a href="javascript:;" class="done">Done</a>'

  constructor: (@quill, @options) ->
    @options = _.defaults(@options, Tooltip.DEFAULTS)

    @quill.onModuleLoad('toolbar', (toolbar) =>
      @toolbar = toolbar
      toolbar.initFormat('link', _.bind(this._onToolbar, this))
    )
    @quill.onModuleLoad('keyboard', (keyboard) =>
      keyboard.addHotkey(LinkTooltip.hotkeys.LINK, _.bind(this._onKeyboard, this))
    )

  saveLink: ->
