     @input = new Input(this)
 
     @editorElement.addEventListener 'mouseup', @checkSelections.bind(this)
+    # @subscriptions.add @editor.onDidAddCursor (cursor) =>
+    #   return if @operationStack.isProcessing()
+    #   if @isVisualMode() and (@submode is 'characterwise') and cursor.selection?.isEmpty()
+    #     cursor
+    #     cursor.selection.selectRight()
+    #   console.log @editor.getSelections().length
+    #   console.log @editor.getCursors().length
+    #   # console.log @editor.getSelections()
+    #   # console.log cursor
+    #   # console.log cursor.selection
+    #   # l
+    #   # return if @operationStack.isProcessing()
+    #   # if @isVisualMode() and (@submode is 'characterwise') and cursor.selection.isEmpty()
+    #   #   cursor.selection.selectRight()
+    # @subscriptions.add @editor.onDidChangeSelectionRange ({selection}) =>
+    #   console.log "selection Changed #{@editor.getCursors().length}"
 
     if atom.commands.onDidDispatch?
       @subscriptions.add atom.commands.onDidDispatch ({target}) =>
         if target is @editorElement
           @checkSelections()
-        if @isVisualMode() and (@submode is 'characterwise') and settings.get('showCursorInVisualMode')
+        if @isVisualMode('characterwise') and settings.get('showCursorInVisualMode')
           @showCursor()
 
     @editorElement.classList.add("vim-mode")

      else if @isVisualMode()
        @activateNormalMode()
    else
      @activateVisualMode('characterwise') if @isNormalMode()

  dontPutCursorsAtEndOfLine: ->
    # if @editor.getPath()?.endsWith 'tryit.coffee'


  reverseSelections: ->
    reversed = not @editor.getLastSelection().isReversed()
    @syncSelectionsReversedSate(reversed)

  syncSelectionsReversedSate: (reversed) ->
    for selection in @editor.getSelections()
      selection.setBufferRange(selection.getBufferRange(), {reversed})

