     @subscriptions.add atom.commands.add 'atom-text-editor.autocomplete-active',
       'autocomplete-plus:confirm': @confirmSelection,
       'autocomplete-plus:cancel': @cancel
+      'core:move-up': (event) =>
+        if @isActive() and @items?.length > 1
+          @selectPrevious()
+          event.stopImmediatePropagation()
+      'core:move-down': (event) =>
+        if @isActive() and @items?.length > 1
+          @selectNext()
+          event.stopImmediatePropagation()
 
   addKeyboardInteraction: ->
     @removeKeyboardInteraction()

  onDidConfirm: (fn) ->
    @emitter.on('did-confirm', fn)

  selectNext: (e) =>
    @emitter.emit('did-select-next')
    e.stopImmediatePropagation()

  onDidSelectNext: (fn) ->
    @emitter.on('did-select-next', fn)

  selectPrevious: (e) =>
    @emitter.emit('did-select-previous')
    e.stopImmediatePropagation()

  onDidSelectPrevious: (fn) ->
    @emitter.on('did-select-previous', fn)

    keys['tab'] = 'autocomplete-plus:confirm' if completionKey.indexOf('tab') > -1
    keys['enter'] = 'autocomplete-plus:confirm' if completionKey.indexOf('enter') > -1

    @keymaps = atom.keymaps.add('atom-text-editor.autocomplete-active', {'atom-text-editor.autocomplete-active': keys})
    @subscriptions.add(@keymaps)

  removeKeyboardInteraction: ->
    @keymaps?.dispose()
    @keymaps = null
    @subscriptions.remove(@keymaps)

  confirmSelection: =>
    @emitter.emit('did-confirm-selection')
