     @selection = window.getSelection()
     switch @selection.type
       when "None"
-        HUD.showForDuration "Create a selection before entering visual mode.", 2500
-        return
+        unless @establishInitialSelection()
+          HUD.showForDuration "Create a selection before entering visual mode.", 2500
+          return
       when "Caret"
         # Try to start with a visible selection.
         @moveInDirection(forward) or @moveInDirection backward unless options.underEditMode

      "n": -> executeFind false
      "N": -> executeFind true

class VisualLineMode extends VisualMode
  constructor: (options = {}) ->
    options.name = "visual/line"
    super options
    @selectLine() unless @selection?.type == "None"

  handleMovementKeyChar: (keyChar) ->
    super keyChar

        # Special case: "yy" (the first from edit mode, and now the second).
        @selectLine() if @options.yYanksLine
        @yank()
      "V": -> new VisualLineMode extend @options, initialRange: @selection.getRangeAt(0).cloneRange()

    if @options.underEditMode
      extend @commands,
