       method = 'scanInBufferRange'
 
     points = []
-    @editor[method] @getRegex(@input), scanRange, ({range}) ->
-      points.push(range.start)
-
-    @highlightTextInRow(@input, fromPoint.row, true)
+    @editor[method] @getRegex(@input), scanRange, ({range}) -> points.push(range.start)
+
     points[@getCount(-1)]?.translate([0, offset])
 
-  highlightTextInRow: (text, row, confirmed) ->
+  highlightTextCursorRows: (text, confirmed) ->
     return unless @getConfig("highlightFindChar")
-    scanRange = @editor.bufferRangeForBufferRow(row)
     ranges = []
-    @editor.scanInBufferRange(@getRegex(text), scanRange, ({range}) -> ranges.push(range))
+    for cursor in @editor.getCursors()
+      scanRange = cursor.getCurrentLineBufferRange()
+      @editor.scanInBufferRange(@getRegex(text), scanRange, ({range}) -> ranges.push(range))
     @vimState.highlightFind.highlightRanges(ranges, confirmed)
 
   moveCursor: (cursor) ->

  isBackwards: ->
    @backwards

  getPoint: (fromPoint) ->
    {start, end} = @editor.bufferRangeForBufferRow(fromPoint.row)


      options =
        charsMax: 2
        autoConfirmTimeout: @getConfig("findByTwoCharsAutoConfirmTimeout")
        onChange: (char) => @highlightTextCursorRows(char)
        onCancel: =>
          @vimState.highlightFind.clearMarkers()
          @cancelOperation()
