(keybind describe-bindings (@if-using (USE_INSERT) $esc @fi "H))
{{{  compilcated stuff
{{{  Set arguments
(keybind  vi-set-argument-0 (@if-using (USE_INSERT) $esc @fi "0))
(keybind  vi-set-argument-1 (@if-using (USE_INSERT) $esc @fi "1))
(keybind  vi-set-argument-2 (@if-using (USE_INSERT) $esc @fi "2))
(keybind  vi-set-argument-3 (@if-using (USE_INSERT) $esc @fi "3))
(keybind  vi-set-argument-4 (@if-using (USE_INSERT) $esc @fi "4))
(keybind  vi-set-argument-5 (@if-using (USE_INSERT) $esc @fi "5))
(keybind  vi-set-argument-6 (@if-using (USE_INSERT) $esc @fi "6))
(keybind  vi-set-argument-7 (@if-using (USE_INSERT) $esc @fi "7))
(keybind  vi-set-argument-8 (@if-using (USE_INSERT) $esc @fi "8))
(keybind  vi-set-argument-9 (@if-using (USE_INSERT) $esc @fi "9))
}}}
{{{  moving cursor/display
   {{{  character commands
   {{{  move by 1 char commands
   (keybind vi-backward-character (@if-using (USE_INSERT) $esc @fi "h))
   (keybind vi-backward-character (@if-using (USE_INSERT) $esc @fi C-H))
   (keybind vi-backward-character (@if-using (USE_INSERT) $esc @fi C-?))

   (keybind vi-forward-character (@if-using (USE_INSERT) $esc @fi " ))
   (keybind vi-forward-character (@if-using (USE_INSERT) $esc @fi "l))

   (keybind vi-underscore (@if-using (USE_INSERT) $esc @fi "-))
   (keybind vi-underscore (@if-using (USE_INSERT) $esc @fi "_))

   (keybind vi-previous-line (@if-using (USE_INSERT) $esc @fi "k))
   (keybind vi-previous-line (@if-using (USE_INSERT) $esc @fi C-P))

   (keybind vi-plus (@if-using (USE_INSERT) $esc @fi "+))
   (keybind vi-plus (@if-using (USE_INSERT) $esc @fi C-M))
   (keybind vi-plus (@if-using (USE_INSERT) $esc @fi C-J))

   (keybind vi-next-line (@if-using (USE_INSERT) $esc @fi C-N))
   (keybind vi-next-line (@if-using (USE_INSERT) $esc @fi "j))
   {{{  ( terminal ( sun )
   ( terminal ( sun )
   (keybind vi-backward-character ($left))
   (keybind vi-forward-character ($right))
   (keybind vi-previous-line ($up))
   (keybind vi-next-line ($down))
   )
   }}}
   {{{  ( terminal ( SUN )
   ( terminal ( SUN )
   (keybind vi-backward-character ($left))
   (keybind vi-forward-character ($right))
   (keybind vi-previous-line ($up))
   (keybind vi-next-line ($down))
   )
   }}}
   }}}
   {{{  move to character commands
   ; These are NOT 100% vi compatible, in that
   ; - more than one character can be used as a search string
   ; - return has to be typed before the action is carried out
   ; - these do not yet work as motions as in vi

   (keybind find-char-right (@if-using (USE_INSERT) $esc @fi "f))
   (keybind find-char-left(@if-using (USE_INSERT) $esc @fi "F))
   (keybind one-before (@if-using (USE_INSERT) $esc @fi "t))
   (keybind one-after  (@if-using (USE_INSERT) $esc @fi "T))
   (keybind replace-chars (@if-using (USE_INSERT) $esc @fi "r))
   }}}
   }}}
   {{{  word/line/fold
   (keybind vi-backward-word (@if-using (USE_INSERT) $esc @fi "b))
   (keybind vi-backward-WORD (@if-using (USE_INSERT) $esc @fi "B))
   (keybind vi-forward-word (@if-using (USE_INSERT) $esc @fi "w))
   (keybind vi-forward-WORD (@if-using (USE_INSERT) $esc @fi "W))
   (keybind vi-end-word (@if-using (USE_INSERT) $esc @fi "e))
   (keybind vi-start-word (@if-using (USE_INSERT) $esc @fi "E))

   (keybind vi-beginning-of-line (@if-using (USE_INSERT) $esc @fi "^))
   (keybind vi-end-of-line (@if-using (USE_INSERT) $esc @fi "$))
   (keybind vi-beginning-of-fold (@if-using (USE_INSERT) $esc @fi "g))
   (keybind vi-end-of-fold (@if-using (USE_INSERT) $esc @fi "v">))
   }}}
   {{{  !sentence, paragraph, section
   ;(
   ;)
   ;[
   ;]
   ;{
   ;}

   }}}
   {{{  gotos
   ; '
   ; `
   (keybind proper-percent (@if-using (USE_INSERT) $esc @fi "%))
   (keybind vi-goto-line (@if-using (USE_INSERT) $esc @fi "G)) ; this will be a function
   (keybind vi-goto-column (@if-using (USE_INSERT) $esc @fi "|))
   }}}
   {{{  page
   (keybind vi-C-B (@if-using (USE_INSERT) $esc @fi C-B))
   @if-using ($prev_page) (keybind vi-C-B (@if-using (USE_INSERT) $esc @fi $prev_page)) @fi
   (keybind vi-C-F (@if-using (USE_INSERT) $esc @fi C-F))
   @if-using ($next_page) (keybind vi-C-F (@if-using (USE_INSERT) $esc @fi $next_page)) @fi

   (keybind vi-C-B (@if-using (USE_INSERT) $esc @fi C-U))
   (keybind vi-C-F (@if-using (USE_INSERT) $esc @fi C-D))
   (keybind center-and-redraw-display- (@if-using (USE_INSERT) $esc @fi C-R))
   (keybind redraw-display- (@if-using (USE_INSERT) $esc @fi C-L))
   }}}
   {{{  display
   (keybind describe-fold (@if-using (USE_INSERT) $esc @fi C-G))
   }}}
}}}
{{{  Folding multiple buffer and motion stuff is bound here
    {{{  folding
     (keybind  crm-V  (@if-using (USE_INSERT) $esc @fi "V))
     ; crm-v does not exist!

     (keybind vi-open-fold (@if-using (USE_INSERT) $esc @fi "v "o))
     (keybind vi-close-fold (@if-using (USE_INSERT) $esc @fi "v "c))
     (keybind vi-enter-fold (@if-using (USE_INSERT) $esc @fi "v "e))
     (keybind vi-exit-fold (@if-using (USE_INSERT) $esc @fi "v "x))
     (keybind vi-unfold-fold (@if-using (USE_INSERT) $esc @fi "v "u))
     (keybind vi-auto-header (@if-using (USE_INSERT) $esc @fi "v "h))
     (keybind vi-toggle-file-fold (@if-using (USE_INSERT) $esc @fi "v "f))
     (keybind vi-attach-file-to-fold (@if-using (USE_INSERT) $esc @fi "v "A))
     (keybind vi-set-language (@if-using (USE_INSERT) $esc @fi "v "l))
     (keybind create-line-fold (@if-using (USE_INSERT) $esc @fi "v "v))
     (keybind mtool-top (@if-using (USE_INSERT) $esc @fi "v "t))
     (keybind mtool-bot (@if-using (USE_INSERT) $esc @fi "v "b))
     ; add mtool open and close flds later
    }}}
    {{{  deleting
    (keybind crm-d (@if-using (USE_INSERT) $esc @fi "d))
    (keybind crm-D (@if-using (USE_INSERT) $esc @fi "D))
    (keybind crm-c (@if-using (USE_INSERT) $esc @fi "c))
    (keybind vi-x (@if-using (USE_INSERT) $esc @fi "x))
    (keybind vi-X (@if-using (USE_INSERT) $esc @fi "X))
    }}}
    {{{  yanking & putting
    (keybind vi-put-buffer-above (@if-using (USE_INSERT) $esc @fi "P))
    (keybind vi-put-buffer (@if-using (USE_INSERT) $esc @fi "p))
    (keybind crm-Y (@if-using (USE_INSERT) $esc @fi "Y))
    (keybind crm-y (@if-using (USE_INSERT) $esc @fi "y))
    }}}
    {{{  multiple buffers
    {{{  open a named buffer
    (keybind open-buffer(@if-using (USE_INSERT) $esc @fi "= "o))   ; open a new buffer
    (keybind open-adjacent-buffer (@if-using (USE_INSERT) $esc @fi "= "A))   ; open a new buffer
    ;(keybind open-left-buffer(@if-using (USE_INSERT) $esc @fi "= "I))   ; open a new buffer
    ;(keybind open-buffer-above(@if-using (USE_INSERT) $esc @fi "= "O))   ; open a new buffer
    }}}
    {{{  open a buffer from the numbered list
    ;(keybind open-list-buffer(@if-using (USE_INSERT) $esc @fi "= "l "o))   ; open a new buffer
    ;(keybind open-list-adjacent-buffer(@if-using (USE_INSERT) $esc @fi "= "l "A))   ; open a new buffer
    ;(keybind open-list-left-buffer(@if-using (USE_INSERT) $esc @fi "= "l "I))   ; open a new buffer
    ;(keybind open-list-buffer-above(@if-using (USE_INSERT) $esc @fi "= "l "O)); open a new buffer x from internal list
    }}}
    {{{  change buffer up down left right
    (keybind down-buffer (@if-using (USE_INSERT) $esc @fi "= "j))
    (keybind up-buffer   (@if-using (USE_INSERT) $esc @fi "= "k))
    (keybind left-buffer (@if-using (USE_INSERT) $esc @fi "= "h))
    (keybind right-buffer (@if-using (USE_INSERT) $esc @fi "= "l))
    {{{  ( terminal ( SUN )
    ( terminal ( SUN )
    @if-using not (USE_INSERT)
    (keybind left-buffer ("= $left))
    (keybind right-buffer ("= $right))
    (keybind up-buffer ("= $up))
    (keybind down-buffer ("= $down))
    @fi
    )
    }}}
    }}}
    (keybind full-size-buffer (@if-using (USE_INSERT) $esc @fi "= "f))
    (keybind exit-buffer (@if-using (USE_INSERT) $esc @fi "= "q))
    (keybind change-buffername (@if-using (USE_INSERT) $esc @fi "= "N))
    ;(keybind make-in-new-window (@if-using (USE_INSERT) $esc @fi "= "M))
    ;(keybind designate-tag-window (@if-using (USE_INSERT) $esc @fi "= "T))
    ;(keybind tag-mode-this-buffer (@if-using (USE_INSERT) $esc @fi "= "t "t))
    ;(keybind tag-mode-designated-buffer (@if-using (USE_INSERT) $esc @fi "= "t "o))
    (keybind enter-resize-mode (@if-using (USE_INSERT) $esc @fi "= "r))
    }}}
}}}
{{{  !undo
;(keybind vi-undo-line (@if-using (USE_INSERT) $esc @fi "u))
}}}
{{{  Search and replace
; macro needed for query -- need to check trailing chars
; for regexp, call real query s/r for each item
; this means that there will have to be some internal bindings for commands
; which are not really to be provided -- internal mode?
(keybind search-f (@if-using (USE_INSERT) $esc @fi "/) )
(keybind search-r (@if-using (USE_INSERT) $esc @fi "?))
(keybind il-search-f (@if-using (USE_INSERT) $esc @fi C-S))
(keybind get-x-selection(@if-using (USE_INSERT) $esc @fi C-X))
(keybind repeat-forward (@if-using (USE_INSERT) $esc @fi "n))
(keybind repeat-reverse (@if-using (USE_INSERT) $esc @fi "N))
}}}
{{{  formating
(keybind proper-toggle-case (@if-using (USE_INSERT) $esc @fi "~))
; <
(keybind crm-shift-in (@if-using (USE_INSERT) $esc @fi ">))
(keybind crm-shift-out (@if-using (USE_INSERT) $esc @fi "<))
(keybind vi-append-to-previous-line (@if-using (USE_INSERT) $esc @fi "J))
}}}
{{{  !repetition
;.
;&
}}}
{{{  getting out
(keybind real-save-and-exit-origami (@if-using (USE_INSERT) $esc @fi "Z"Z))
}}}
{{{  !buffers
; @
; "
}}}
{{{  marking
    (keybind vi-set-mark (@if-using (USE_INSERT) $esc @fi "m))
    (keybind vi-goto-mark (@if-using (USE_INSERT) $esc @fi "'))
    (keybind vi-goto-mark-exact (@if-using (USE_INSERT) $esc @fi "`))
}}}
{{{  !bells & whistles
  {{{  Macros
  (keybind define-macro (@if-using (USE_INSERT) $esc @fi C-Y ))
  (keybind execute-macro (@if-using (USE_INSERT) $esc @fi C-E ))
  }}}
  {{{  filter line
  (keybind vi-filter-line (@if-using (USE_INSERT) $esc @fi "! "! ))

  }}}
}}}

{{{  entering insert mode
;R
;c
;C
{{{  Aa
(keybind append(@if-using (USE_INSERT) $esc @fi "a))
(keybind Append(@if-using (USE_INSERT) $esc @fi "A))
}}}
{{{  Ii
(keybind insert (@if-using (USE_INSERT) $esc @fi "i))
(keybind Insert (@if-using (USE_INSERT) $esc @fi "I))
}}}
{{{  Oo
(keybind Open (@if-using (USE_INSERT) $esc @fi "O))
(keybind open (@if-using (USE_INSERT) $esc @fi "o))
}}}
}}}
{{{  entering ex mode
  (keybind enter-ex-mode (@if-using (USE_INSERT) $esc @fi ":))
}}}
}}}
{{{  basic stuff
;(keybind quote-character (@if-using (USE_INSERT) $esc @fi C-V))
}}}
{{{  extended mode /control tags
  {{{  tags
  (keybind push-tag (@if-using (USE_INSERT) $esc @fi C-]))
  (keybind pop-tag (@if-using (USE_INSERT) $esc @fi C-T))
  }}}
  {{{  keywords
  }}}
  {{{  filename completion
  }}}
  (keybind suspend-origami (@if-using (USE_INSERT) $esc @fi C-Z))
  {{{  status line
  (keybind status-line-off- (@if-using (USE_INSERT) $esc @fi "M "s "+))
  (keybind status-line-on- (@if-using (USE_INSERT) $esc @fi "M "s "-))
  }}}
  {{{  extended mode and stop line mode
  (keybind add-mode-extended (@if-using (USE_INSERT) $esc @fi "M "x "+))
  (keybind delete-mode-extended (@if-using (USE_INSERT) $esc @fi "M "x "-))
  (keybind del-line-stop-mode (@if-using (USE_INSERT) $esc @fi "M "l "s "-))
  (keybind add-line-stop-mode (@if-using (USE_INSERT) $esc @fi "M "l "s "+))
  (keybind vi-add-mode-autosave (@if-using (USE_INSERT) $esc @fi "M "a "+))
  (keybind vi-del-mode-autosave (@if-using (USE_INSERT) $esc @fi "M "a "-))
  }}}
  {{{  wrap and fill para
  (keybind vi-add-mode-wrap (@if-using (USE_INSERT) $esc @fi "M "w "+))
  (keybind vi-delete-mode-wrap (@if-using (USE_INSERT) $esc @fi "M "w "-))
  (keybind vi-set-fill-column (@if-using (USE_INSERT) $esc @fi "M "f "c))
  (keybind vi-fill-paragraph (@if-using (USE_INSERT) $esc @fi "M "f "p))
  }}}
  {{{  goto mode
  (keybind fast-goto (@if-using (USE_INSERT) $esc @fi "M "g "f))
  (keybind slow-goto (@if-using (USE_INSERT) $esc @fi "M "g "s))
  }}}
  {{{  macros
  }}}
}}}
