       underEditMode: false
     super extend defaults, options
 
-    extend @commands, "y": @yank
+    extend @commands,
+      "y": ->
+        # Special case: "yy" (the first from edit mode, and now the second).
+        @selectLine() if @options.expectImmediateY and @keyQueue == ""
+        @yank()
 
     if @options.underEditMode
       extend @commands,

      "v": -> new VisualModeForEdit

      "Y": -> @runInVisualMode runMovement: "Y"
      "y": => @runInVisualMode {}
      "d": => @runInVisualMode deleteFromDocument: true
      "c": => @runInVisualMode
        deleteFromDocument: true

  selectLine: ->
    direction = @getDirection()
    for direction in [ @opposite[direction], direction ]
      console.log direction
      @runMovement "#{direction} lineboundary"
      @swapFocusAndAnchor()

