       exitOnEscape: true
     super extend defaults, options
 
-    if @selection.type == "None"
-      @establishInitialSelection()
-
     switch @selection.type
       when "None"
-        HUD.showForDuration "Create a selection before entering visual mode.", 2500
-        @exit()
-        return
+        @establishInitialSelectionAnchor()
+        if @selection.type == "None"
+          HUD.showForDuration "Create a selection before entering visual mode.", 2500
+          @exit()
+          return
       when "Range"
         @collapseSelectionToFocus()
 


      J: (count) ->
        for [0...count]
          @runMovement forward, "lineboundary"
          @enterVisualModeForMovement 1, immediateMovement: "w", deleteFromDocument: true, noCopyToClipboard: true
          DomUtils.simulateTextEntry @element, " "



        @continueBubbling

    # Install basic bindings for find mode, "n" and "N".  We do not install these bindings if the is a
    # sub-mode of edit mode, because we cannot (yet) guarantee that the selection will remain within the
    # active element.
    unless @options.parentMode or options.oneMovementOnly
      do =>
        executeFind = (count, findBackwards) =>
          if query = getFindModeQuery()
            initialRange = @selection.getRangeAt(0).cloneRange()
            for [0...count]
              unless window.find query, Utils.hasUpperCase(query), findBackwards, true, false, true, false
                HUD.showForDuration "Yanked #{@yankedText.length} character#{plural}: \"#{message}\".", 2500
                @selectRange initialRange
                @scrollIntoView()
                break

        @movements.n = (count) -> executeFind count, false
        @movements.N = (count) -> executeFind count, true
        @movements["/"] = -> enterFindMode()
    #
    # End of Movement constructor.

