         @wordPrefixRegex = /^[\w-]/
     ))
 
-  bindToMovementCommands: ->
-    useCoreMovementCommands = atom.config.get('autocomplete-plus.useCoreMovementCommands')
-    commandNamespace = if useCoreMovementCommands then 'core' else 'autocomplete-plus'
-
-    commands = {}
-    commands["#{commandNamespace}:move-up"] = (event) =>
-      if @isActive() and @items?.length > 1
-        @selectPrevious()
-        event.stopImmediatePropagation()
-    commands["#{commandNamespace}:move-down"] = (event) =>
-      if @isActive() and @items?.length > 1
-        @selectNext()
-        event.stopImmediatePropagation()
-    commands["#{commandNamespace}:page-up"] = (event) =>
-      if @isActive() and @items?.length > 1
-        @selectPageUp()
-        event.stopImmediatePropagation()
-    commands["#{commandNamespace}:page-down"] = (event) =>
-      if @isActive() and @items?.length > 1
-        @selectPageDown()
-        event.stopImmediatePropagation()
-    commands["#{commandNamespace}:move-to-top"] = (event) =>
-      if @isActive() and @items?.length > 1
-        @selectTop()
-        event.stopImmediatePropagation()
-    commands["#{commandNamespace}:move-to-bottom"] = (event) =>
-      if @isActive() and @items?.length > 1
-        @selectBottom()
-        event.stopImmediatePropagation()
-
-    @movementCommandSubscriptions?.dispose()
-    @movementCommandSubscriptions = new CompositeDisposable
-    @movementCommandSubscriptions.add atom.commands.add('atom-text-editor.autocomplete-active', commands)
-
-  addKeyboardInteraction: ->
-    @removeKeyboardInteraction()
+  addBindings: (editor) ->
+    @bindings?.dispose()
+    @bindings = new CompositeDisposable
+
     completionKey = atom.config.get('autocomplete-plus.confirmCompletion') or ''
 
     keys = {}

  # Public: Clean up, stop listening to events
  dispose: ->
    @subscriptions.dispose()
    @movementCommandSubscriptions?.dispose()
    @emitter.emit('did-dispose')
    @emitter.dispose()

    if marker = editor.getLastCursor()?.getMarker()
      @activeEditor = editor
      @overlayDecoration = editor.decorateMarker(marker, {type: 'overlay', item: this})
      @addBindings(editor)

  hide: =>
    return if @activeEditor is null
    @destroyOverlay()
    @bindings?.dispose()
    @activeEditor = null

  destroyOverlay: =>
