   '#': 'vim-mode:reverse-search-current-word'
   'n': 'vim-mode:repeat-search'
   'N': 'vim-mode:repeat-search-backwards'
-
   '%': 'vim-mode:bracket-matching-motion'
 
   '1': 'vim-mode:set-count'

  '<': 'vim-mode:outdent'
  '=': 'vim-mode:auto-indent'
  'J': 'vim-mode:join'

  'y': 'vim-mode:yank'
  'Y': 'vim-mode:yank-line'
  'P': 'vim-mode:put-before'
  'p': 'vim-mode:put-after'

  '~': 'vim-mode:toggle-case-and-move-right'
  'g ~': 'vim-mode:toggle-case'
  'g U': 'vim-mode:upper-case'
  'g u': 'vim-mode:lower-case'
  'g u': 'vim-mode:lower-case'
  'g c': 'vim-mode:camel-case'
  'g /': 'vim-mode:toggle-line-comments'
  # 'g _': 'vim-mode:snake-case'
  'g -': 'vim-mode:dash-case'
  'g s s': 'vim-mode:surround'
  'g s w': 'vim-mode:surround-word'
  'g s d': 'vim-mode:delete-surround'

  '9': 'vim-mode:set-count'
  # '"': 'vim-mode:set-count'

# normal
# -------------------------
'atom-text-editor.vim-mode.normal-mode':
  'i':      'vim-mode:activate-insert-mode'
  'R':      'vim-mode:activate-replace-mode'
  'v':      'vim-mode:activate-characterwise-visual-mode'
  'V':      'vim-mode:activate-linewise-visual-mode'
  'ctrl-v': 'vim-mode:activate-blockwise-visual-mode'
  'u':      'vim-mode:undo'
  'ctrl-r': 'core:redo'
  'O':      'vim-mode:insert-above-with-newline'
  'o':      'vim-mode:insert-below-with-newline'
  'a':      'vim-mode:insert-after'
  'A':      'vim-mode:insert-after-end-of-line'
  'x':      'vim-mode:delete-right'
  'X':      'vim-mode:delete-left'
  's':      'vim-mode:substitute'
  '.':      'vim-mode:repeat'
  'ctrl-]': 'symbols-view:go-to-declaration'
  'ctrl-t': 'symbols-view:return-from-declaration'
  'ctrl-a': 'vim-mode:increase'
  'ctrl-x': 'vim-mode:decrease'
  '"':      'vim-mode:set-register-name'

# operator-pending, visual
# -------------------------
'atom-text-editor.vim-mode.operator-pending-mode, atom-text-editor.vim-mode.visual-mode':
  'x': 'vim-mode:reset-normal-mode'
  '~': 'vim-mode:toggle-case'
  'U': 'vim-mode:upper-case'
  'u': 'vim-mode:lower-case'

  # Text object inner-, a- order
  'i w':  'vim-mode:inner-word'
  'a w':  'vim-mode:a-word'

  'i W':  'vim-mode:inner-whole-word'
  'a W':  'vim-mode:a-whole-word'

  'i s':  'vim-mode:inner-any-pair'
  'a s':  'vim-mode:a-any-pair'

  'i "':  'vim-mode:inner-double-quotes'
  'a "':  'vim-mode:a-double-quotes'

  'i \'': 'vim-mode:inner-single-quotes'
  'a \'': 'vim-mode:a-single-quotes'

  'i `':  'vim-mode:inner-back-ticks'
  'a `':  'vim-mode:a-back-ticks'

  'i {':  'vim-mode:inner-curly-brackets'
  'a {':  'vim-mode:a-curly-brackets'

  'i }':  'vim-mode:inner-curly-brackets'
  'a }':  'vim-mode:a-curly-brackets'

  'i B':  'vim-mode:inner-curly-brackets'
  'a B':  'vim-mode:a-curly-brackets'

  'i <':  'vim-mode:inner-angle-brackets'
  'i >':  'vim-mode:inner-angle-brackets'
  'a <':  'vim-mode:a-angle-brackets'
  'a >':  'vim-mode:a-angle-brackets'

  'i t':  'vim-mode:inner-tags'

  'i [':  'vim-mode:inner-square-brackets'
  'i ]':  'vim-mode:inner-square-brackets'
  'a [':  'vim-mode:a-square-brackets'
  'a ]':  'vim-mode:a-square-brackets'

  'i (':  'vim-mode:inner-parentheses'
  'i )':  'vim-mode:inner-parentheses'
  'a (':  'vim-mode:a-parentheses'
  'a )':  'vim-mode:a-parentheses'

  'i b':  'vim-mode:inner-parentheses'
  'a b':  'vim-mode:a-parentheses'

  'i p':  'vim-mode:inner-paragraph'
  'a p':  'vim-mode:a-paragraph'

  'i /':  'vim-mode:inner-comment'
  'a /':  'vim-mode:a-comment'

  'i i':  'vim-mode:inner-indentation'
  'a i':  'vim-mode:a-indentation'

  'i l':  'vim-mode:inner-current-line'
  'a l':  'vim-mode:a-current-line'

  'i e':  'vim-mode:inner-entire'
  'a e':  'vim-mode:a-entire'

# visual
# -------------------------
'atom-text-editor.vim-mode.visual-mode':
  'x': 'vim-mode:delete'
  's': 'vim-mode:change'
  'o': 'vim-mode:reverse-selections'
  '"': 'vim-mode:set-register-name'

  'v':      'vim-mode:activate-characterwise-visual-mode'
  'V':      'vim-mode:activate-linewise-visual-mode'
  'ctrl-v': 'vim-mode:activate-blockwise-visual-mode'

# visual-blockwise
# -------------------------
'atom-text-editor.vim-mode.visual-mode.blockwise':
  'o':      'vim-mode:blockwise-other-end',
  'O':      'vim-mode:reverse-selections',
