     @reverse = @vimState.globalVimState.currentSearch.reverse
     @initiallyReversed = @vimState.globalVimState.currentSearch.initiallyReversed
 
-# Search Motion
-# -------------------------
+# keymap: /
 class Search extends SearchBase
   @extend()
   constructor: ->
     super
     @viewModel = new SearchViewModel(this)
 
+# keymap: ?
 class ReverseSearch extends Search
   @extend()
   constructor: ->
     super
     @reversed()
 
+# keymap: *
 class SearchCurrentWord extends SearchBase
   @extend()
   @keywordRegex: null

    cursor.setBufferPosition([@getDestinationRow(@getCount()), Infinity])
    cursor.moveToFirstCharacterOfLine()
    cursor.moveToEndOfLine() if cursor.getBufferColumn() is 0

class MoveToRelativeLine extends MoveToLineBase
  @extend()
  operatesLinewise: true

  moveCursor: (cursor) ->
    {row, column} = cursor.getBufferPosition()
    cursor.setBufferPosition([row + (@getCount(1) - 1), 0])

# Not directly used.
class MoveToScreenLine extends MoveToLineBase
  @extend()
  scrolloff: 2

  moveCursor: (cursor) ->
    {row, column} = cursor.getBufferPosition()
    cursor.setScreenPosition([@getDestinationRow(@getCount(1)), 0])

# keymap: gg
class MoveToStartOfFile extends MoveToLineBase

    if matchPosition = @searchForMatch(startPosition, reverse, inCharacter, outCharacter)
      cursor.setBufferPosition(matchPosition)

# Alias
module.exports = {
  MotionError
  Motion
