   isBackwards: ->
     @backwards
 
-  getOffset: ->
-    if @isBackwards() then @offset else -@offset
-
-  getUnOffset: ->
-    -@getOffset() * @isRepeatFind()
-
   find: (cursor) ->
     cursorPoint = cursor.getBufferPosition()
     {start, end} = @editor.bufferRangeForBufferRow(cursorPoint.row)
 
-    points   = []
-    offset   = @getOffset()
-    unOffset = @getUnOffset()
+    offset   = if @isBackwards() then @offset else -@offset
+    unOffset = -offset * @isRepeatFind()
     if @isBackwards()
       scanRange = [start, cursorPoint.translate([0, unOffset])]
       method    = 'backwardsScanInBufferRange'

      scanRange = [cursorPoint.translate([0, 1 + unOffset]), end]
      method    = 'scanInBufferRange'

    @editor[method] ///#{_.escapeRegExp(@input)}///g, scanRange, ({range}) ->
      points.push range.start

    points[@getCount(1) - 1]?.translate([0, offset])

  moveCursor: (cursor) ->


    cursorPosition = cursor.getBufferPosition()
    ranges = []
    pattern = @getPattern(@input)
    @editor.scan pattern, ({range}) ->
      ranges.push range

    [rangesBefore, rangesAfter] = _.partition ranges, ({start}) =>
