     if @isMode('visual', submode)
       @activateNormalMode()
       return
-
-    # [FIXME] comment out to evaluate necessity.
-    # Since I can't understand why this is necessary.
-    # unless @isMode('visual')
-    #   @deactivateInsertMode()
 
     oldSubmode = @submode
     # [NOTE] following operation depend operationStack

      @replaceModeUndoListener = null

  deactivateVisualMode: ->
    return unless @isMode('visual')
    {lastOperation} = @vimState
    restoreColumn = not (lastOperation?.isYank() or lastOperation?.isIndent())
    if restoreColumn and @isMode('visual', 'linewise')

      @selectCharacterwise()
    @vimState.operationStack.push new BlockwiseSelect(@vimState)

  activateOperatorPendingMode: ->
    # @deactivateInsertMode()
    @setMode('operator-pending')

  resetNormalMode: ->
