bindkey -N vicmd # Bind in string to out string bindkey -s -M vicmd "gUU" "gUgU" bindkey -s -M vicmd "guu" "gugu" bindkey -s -M vicmd "g~~" "g~g~" # Movement bindkey -M vicmd "h" vi-backward-char bindkey -M vicmd "t" history-substring-search-down bindkey -M vicmd "n" history-substring-search-up bindkey -M vicmd "s" vi-forward-char # Search history bindkey -M vicmd "/" atuin-up-search-vicmd bindkey -M vicmd "?" atuin-down-search-vicmd bindkey -M vicmd "l" vi-repeat-search bindkey -M vicmd "L" vi-rev-repeat-search bindkey -M vicmd "f" vi-find-next-char bindkey -M vicmd "F" vi-find-prev-char # Tell the user that more ESC is not possible bindkey -M vicmd "^[" beep # > Fetch the history line specified by the numeric argument. # > This defaults to the current history line (i.e. the one that isn't history yet). bindkey -M vicmd "G" vi-fetch-history bindkey -M vicmd "gg" beginning-of-buffer-or-history bindkey -M vicmd -R "1"-"9" digit-argument bindkey -M vicmd "^L" clear-screen bindkey -M vicmd ":" execute-named-cmd bindkey -M vicmd "=" list-choices bindkey -M vicmd "^V" vi-quoted-insert bindkey -M vicmd "#" vi-pound-insert bindkey -M vicmd "u" undo bindkey -M vicmd "A" vi-add-eol bindkey -M vicmd "i" vi-insert bindkey -M vicmd "a" vi-add-next bindkey -M vicmd "I" vi-insert-bol bindkey -M vicmd "O" vi-open-line-above bindkey -M vicmd "o" vi-open-line-below bindkey -M vicmd "c" vi-change bindkey -M vicmd "C" vi-change-eol bindkey -M vicmd "S" vi-change-whole-line bindkey -M vicmd "b" vi-backward-word bindkey -M vicmd "ge" vi-backward-word-end bindkey -M vicmd "B" vi-backward-blank-word bindkey -M vicmd "gE" vi-backward-blank-word-end bindkey -M vicmd "w" vi-forward-word bindkey -M vicmd "e" vi-forward-word-end bindkey -M vicmd "W" vi-forward-blank-word bindkey -M vicmd "E" vi-forward-blank-word-end bindkey -M vicmd "x" vi-delete-char bindkey -M vicmd "X" vi-backward-delete-char bindkey -M vicmd "d" vi-delete bindkey -M vicmd "D" vi-kill-eol bindkey -M vicmd "y" vi-yank bindkey -M vicmd "Y" vi-yank-whole-line bindkey -M vicmd "p" vi-put-after bindkey -M vicmd "P" vi-put-before bindkey -M vicmd "~" vi-swap-case bindkey -M vicmd "g~" vi-oper-swap-case bindkey -M vicmd "gU" vi-up-case bindkey -M vicmd "gu" vi-down-case bindkey -M vicmd "\^" vi-first-non-blank bindkey -M vicmd "\$" vi-end-of-line bindkey -M vicmd "0" vi-digit-or-beginning-of-line bindkey -M vicmd "|" vi-goto-column bindkey -M vicmd "\`" vi-goto-mark bindkey -M vicmd "'" vi-goto-mark-line bindkey -M vicmd ">" vi-indent bindkey -M vicmd "<" vi-unindent bindkey -M vicmd "%" vi-match-bracket bindkey -M vicmd "." vi-repeat-change bindkey -M vicmd ";" vi-repeat-find bindkey -M vicmd "," vi-rev-repeat-find bindkey -M vicmd "R" vi-replace bindkey -M vicmd "r" vi-replace-chars # bindkey -M vicmd "s" vi-substitute bindkey -M vicmd "\"" vi-set-buffer bindkey -M vicmd "m" vi-set-mark bindkey -M vicmd "ga" what-cursor-position bindkey -M vicmd "V" visual-line-mode bindkey -M vicmd "v" visual-mode # Selection bindkey -M vicmd "aW" select-a-blank-word bindkey -M vicmd "aa" select-a-shell-word bindkey -M vicmd "aw" select-a-word bindkey -M vicmd "iW" select-in-blank-word bindkey -M vicmd "ia" select-in-shell-word bindkey -M vicmd "iw" select-in-word bindkey -M vicmd "a(" select-bracketed bindkey -M vicmd "a)" select-bracketed bindkey -M vicmd "a<" select-bracketed bindkey -M vicmd "a>" select-bracketed bindkey -M vicmd "aB" select-bracketed bindkey -M vicmd "a[" select-bracketed bindkey -M vicmd "a]" select-bracketed bindkey -M vicmd "ab" select-bracketed bindkey -M vicmd "a{" select-bracketed bindkey -M vicmd "a}" select-bracketed bindkey -M vicmd "i(" select-bracketed bindkey -M vicmd "i)" select-bracketed bindkey -M vicmd "i<" select-bracketed bindkey -M vicmd "i>" select-bracketed bindkey -M vicmd "iB" select-bracketed bindkey -M vicmd "i[" select-bracketed bindkey -M vicmd "i]" select-bracketed bindkey -M vicmd "ib" select-bracketed bindkey -M vicmd "i{" select-bracketed bindkey -M vicmd "i}" select-bracketed bindkey -M vicmd "a'" select-quoted bindkey -M vicmd "a\"" select-quoted bindkey -M vicmd "a\`" select-quoted bindkey -M vicmd "i'" select-quoted bindkey -M vicmd "i\"" select-quoted bindkey -M vicmd "i\`" select-quoted # Support pasted text bindkey -M vicmd "^[[200~" bracketed-paste