     [true]
 
   scan: ->
+    if @startUp
+      @startUpPos = @editor.getCursorBufferPosition()
+      min = -1
+      iwin = -1
+      for i in [0..@characters.length - 1]
+        matchesCharacter = @searchFor(@characters[i])
+        if matchesCharacter.length > 0
+          dst = matchesCharacter[0].range.start.toArray()
+          if @startUpPos.toArray()[0] == dst[0] and @startUpPos.toArray()[1] < dst[1]
+            if dst[1] < min or min == -1
+              line = dst[0]
+              min = dst[1]
+              iwin = i
+      if iwin != -1
+        @editor.setCursorBufferPosition(new Point(line,min))
+        @character = @characters[iwin]
+        @matching = @charactersMatching[iwin]
+        @reverse = @reverseSearch[iwin]
+
     matchesCharacter = @searchFor(@character)
     matchesMatching = @searchFor(@matching)
     if matchesMatching.length == 0

    super(@editorView, @vimState)
    Search.currentSearch = @
    @reverse = @initiallyReversed = false

    # FIXME: This must depend on the current language
    @input = new Input(@getCurrentWordMatch())

        retVal.push(matchesMatching[winner])
      @matches = retVal

    if @matches.length == 0 and @startUp
      @editor.setCursorBufferPosition(@startUpPos)



  execute: (count=1) ->
    super(count) if @input.characters.length > 0
