Created
February 25, 2017 03:21
-
-
Save darvelo/3301ab5fafab0f285b5b3be812f461c6 to your computer and use it in GitHub Desktop.
khd vim modes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
khd mode vimnormal color 0xddcd950c | |
vimnormal - escape : khd -e "mode activate default" | |
vimgmode - escape : khd -e "mode activate vimnormal" | |
vimdelete - escape : khd -e "mode activate vimnormal" | |
vimchange - escape : khd -e "mode activate vimnormal" | |
vimvisual - escape : khd -e "mode activate vimnormal" | |
viminsert - escape : khd -e "mode activate vimnormal" ; khd -e "void_unlisted_bind on" | |
viminsertpassescape - escape -> : khd -e "mode activate vimnormal" ; khd -e "void_unlisted_bind on" | |
vimvisualline - escape : khd -e "mode activate vimnormal" | |
cmd - escape : khd -e "mode activate switcher" | |
switcher - escape : khd -e "mode activate default" | |
switcher - v : khd -e "mode activate vimnormal" | |
vimnormal - g : khd -e "mode activate vimgmode" | |
vimnormal - d : khd -e "mode activate vimdelete" | |
vimnormal - c : khd -e "mode activate vimchange" | |
vimnormal - v : khd -e "mode activate vimvisual" | |
vimnormal + shift - v : khd -e "mode activate vimvisualline" ; khd -p "cmd - left" ; khd -p "shift + alt - down" | |
######### | |
# vim mode for non-terminal applications | |
# | |
# this mode uses fake keybinds to get past the blocking of unmapped keys in non-default mode | |
# see: https://github.com/koekeishiya/khd/issues/58 | |
######### | |
######### | |
# vim special mode | |
# passthrough keys are added here that shouldn't be available in any vim mode | |
######### | |
vimspecial + cmd - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift + cmd - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift + cmd - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + alt - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + alt - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift + alt - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift + alt - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial - backspace ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial - delete ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + alt - backspace ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - backspace ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - z ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd + shift - z ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial - return ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + shift - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - f ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd - g ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + cmd + shift - g ![HyperTerm,Terminal,iTerm2] -> : true | |
vimspecial + ctrl - k ![HyperTerm,Terminal,iTerm2] -> : true | |
######### | |
# vim g mode | |
######### | |
vimgmode + cmd + alt - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimgmode + cmd + alt - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimgmode - t ![HyperTerm,Terminal,iTerm2] : khd -p "cmd + alt - right" ; khd -e "mode activate vimnormal" | |
vimgmode + shift - t ![HyperTerm,Terminal,iTerm2] : khd -p "cmd + alt - left" ; khd -e "mode activate vimnormal" | |
######### | |
# vim normal mode | |
######### | |
# these bindings actually make the movements go faster than switching to vimspecial mode and back | |
vimnormal + alt - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal + alt - right ![HyperTerm,Terminal,iTerm2] -> : true | |
# non-vimlike binding that makes life easier | |
vimnormal - tab ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal + shift - tab ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal - space ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal + shift - space ![HyperTerm,Terminal,iTerm2] -> : true | |
# remap insert mode keys | |
vimnormal - i ![HyperTerm,Terminal,iTerm2] : khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimnormal - a ![HyperTerm,Terminal,iTerm2] : khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert";\ | |
khd -p "- right" | |
vimnormal + shift - i ![HyperTerm,Terminal,iTerm2] : khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert";\ | |
khd -p "cmd - left" | |
vimnormal + shift - a ![HyperTerm,Terminal,iTerm2] : khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert";\ | |
khd -p "cmd - right" | |
# remap o/O -> open a new line | |
vimnormal - o ![HyperTerm,Terminal,iTerm2] : khd -p "shift - 4";\ | |
khd -e "mode activate vimspecial" ; khd -p "- return";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimnormal + shift - o ![HyperTerm,Terminal,iTerm2] : khd -p "- 0";\ | |
khd -e "mode activate vimspecial" ; khd -p "- return";\ | |
khd -e "mode activate vimnormal" ; khd -p "- k";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
# 0x2c = slash | |
vimnormal - 0x2c ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - f";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsertpassescape" | |
vimnormal - n ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - g" ; khd -e "mode activate vimnormal" | |
vimnormal - p ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd + shift - g" ; khd -e "mode activate vimnormal" | |
# remap left-control h/j/k/l -> arrow keys | |
vimnormal - h ![HyperTerm,Terminal,iTerm2] : khd -p "- left" | |
vimnormal - j ![HyperTerm,Terminal,iTerm2] : khd -p "- down" | |
vimnormal - k ![HyperTerm,Terminal,iTerm2] : khd -p "- up" | |
vimnormal - l ![HyperTerm,Terminal,iTerm2] : khd -p "- right" | |
vimnormal - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimnormal - right ![HyperTerm,Terminal,iTerm2] -> : true | |
# remap 0 / 4 -> start / end of line | |
vimnormal - 0 ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - left" ; khd -e "mode activate vimnormal" | |
vimnormal + shift - 4 ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - right" ; khd -e "mode activate vimnormal" | |
# remap g / G -> start / end of text | |
vimnormal - g ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - up" ; khd -e "mode activate vimnormal" | |
vimnormal + shift - g ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - down" ; khd -e "mode activate vimnormal" | |
# remap b / e -> start / end of word | |
vimnormal - b ![HyperTerm,Terminal,iTerm2] : khd -p "alt - left" | |
vimnormal - e ![HyperTerm,Terminal,iTerm2] : khd -p "alt - right" | |
# remap w -> start of next word | |
# not perfect but it sorta works | |
vimnormal - w ![HyperTerm,Terminal,iTerm2] : khd -p "alt - right" ; khd -p "alt - right" ; khd -p "alt - left" | |
# remap s -> change a character and enter insert mode | |
vimnormal - s ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- delete";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
# remap X -> backspace | |
vimnormal + shift - x ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- backspace" ; khd -e "mode activate vimnormal" | |
# remap x -> forward delete | |
vimnormal - x ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- delete" ; khd -e "mode activate vimnormal" | |
# remap u -> undo | |
vimnormal - u ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - z" ; khd -e "mode activate vimnormal" | |
# remap ^r -> redo | |
vimnormal + ctrl - r ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd + shift - z" ; khd -e "mode activate vimnormal" | |
######### | |
# vim visual mode | |
######### | |
# these bindings actually make the movements go faster than switching to vimspecial mode and back | |
vimvisual + shift - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift + cmd - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift + cmd - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift + cmd - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift + cmd - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift + alt - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual + shift + alt - right ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisual - h ![HyperTerm,Terminal,iTerm2] : khd -p "shift - left" | |
vimvisual - j ![HyperTerm,Terminal,iTerm2] : khd -p "shift - down" | |
vimvisual - k ![HyperTerm,Terminal,iTerm2] : khd -p "shift - up" | |
vimvisual - l ![HyperTerm,Terminal,iTerm2] : khd -p "shift - right" | |
vimvisual - 0 ![HyperTerm,Terminal,iTerm2] : khd -p "shift + cmd - left" | |
vimvisual + shift - 4 ![HyperTerm,Terminal,iTerm2] : khd -p "shift + cmd - right" | |
vimvisual - b ![HyperTerm,Terminal,iTerm2] : khd -p "shift + alt - left" | |
vimvisual - e ![HyperTerm,Terminal,iTerm2] : khd -p "shift + alt - right" | |
vimvisual - w ![HyperTerm,Terminal,iTerm2] : khd -p "shift + alt - right" ; khd -p "shift + alt - right" ; khd -p "shift + alt - left" | |
vimvisual - g ![HyperTerm,Terminal,iTerm2] : khd -p "shift + cmd - up" | |
vimvisual + shift - g ![HyperTerm,Terminal,iTerm2] : khd -p "shift + cmd - down" | |
vimvisual - d ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- backspace" ; khd -e "mode activate vimnormal" | |
vimvisual - c ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
######### | |
# vim visual line mode | |
######### | |
# these bindings actually make the movements go faster than switching to vimspecial mode and back | |
vimvisualline + ctrl - o ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisualline + cmd - left ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisualline + shift + cmd - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisualline + shift + cmd - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisualline + shift + alt - up ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisualline + shift + alt - down ![HyperTerm,Terminal,iTerm2] -> : true | |
vimvisualline - j ![HyperTerm,Terminal,iTerm2] : khd -p "shift + alt - down" | |
vimvisualline - k ![HyperTerm,Terminal,iTerm2] : khd -p "shift + alt - up" | |
vimvisualline - d ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- backspace" ; khd -e "mode activate vimnormal" | |
vimvisualline - c ![HyperTerm,Terminal,iTerm2] : khd -p "ctrl - o";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimvisualline - g ![HyperTerm,Terminal,iTerm2] : khd -p "shift + cmd - up" | |
vimvisualline + shift - g ![HyperTerm,Terminal,iTerm2] : khd -p "shift + cmd - down" | |
######### | |
# vim delete mode | |
######### | |
vimdelete - w ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial";\ | |
khd -p "shift + alt - right" ; khd -p "shift + alt - right" ; khd -p "shift + alt - left" ; khd -p "- backspace";\ | |
khd -e "mode activate vimnormal" | |
vimdelete - b ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "alt - backspace" ; khd -e "mode activate vimnormal" | |
# this could work with "fn + alt - backspace" but khd doesn't yet support the fn modifier | |
# see: https://github.com/koekeishiya/khd/issues/59 | |
vimdelete - e ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "shift + alt - right" ; khd -p "- backspace" ; khd -e "mode activate vimnormal" | |
vimdelete - h ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- backspace" ; khd -e "mode activate vimnormal" | |
vimdelete - l ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- delete" ; khd -e "mode activate vimnormal" | |
vimdelete - j ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "- j" ; khd -p "- d" | |
vimdelete - k ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "- k" ; khd -p "- d" | |
vimdelete - g ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "- g" ; khd -p "- d" | |
vimdelete + shift - g ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "shift - g" ; khd -p "- d" | |
vimdelete - 0 ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - backspace" ; khd -e "mode activate vimnormal" | |
# this could work with "fn + alt - backspace" but khd doesn't yet support the fn modifier | |
# see: https://github.com/koekeishiya/khd/issues/59 | |
vimdelete + shift- 4 ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "shift + cmd - right" ; khd -p "- backspace" ; khd -e "mode activate vimnormal" | |
vimdelete - d ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial";\ | |
khd -p "cmd - right";\ | |
khd -p "cmd - backspace";\ | |
khd -p "- delete";\ | |
khd -e "mode activate vimnormal" | |
######### | |
# vim change mode | |
######### | |
vimchange - w ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial";\ | |
khd -p "shift + alt - right" ; khd -p "shift + alt - right" ; khd -p "shift + alt - left" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - b ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "alt - backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
# this could work with "fn + alt - backspace" but khd doesn't yet support the fn modifier | |
# see: https://github.com/koekeishiya/khd/issues/59 | |
vimchange - e ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "shift + alt - right" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - h ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - j ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "- j";\ | |
khd -e "mode activate vimspecial" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - k ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "- k";\ | |
khd -e "mode activate vimspecial" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - l ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "- delete";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - g ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "- g";\ | |
khd -e "mode activate vimspecial" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange + shift - g ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimvisual" ; khd -p "shift - g";\ | |
khd -e "mode activate vimspecial" ; khd -p "- backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - 0 ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "cmd - backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
# this could work with "fn + alt - backspace" but khd doesn't yet support the fn modifier | |
# see: https://github.com/koekeishiya/khd/issues/59 | |
vimchange + shift- 4 ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial" ; khd -p "ctrl - k";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" | |
vimchange - c ![HyperTerm,Terminal,iTerm2] : khd -e "mode activate vimspecial";\ | |
khd -p "cmd - right";\ | |
khd -p "cmd - backspace";\ | |
khd -e "void_unlisted_bind off";\ | |
khd -e "mode activate viminsert" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment