diff --git a/lib/git/aliases_and_bindings.sh b/lib/git/aliases_and_bindings.sh index e149d10..8109cb4 100644 --- a/lib/git/aliases_and_bindings.sh +++ b/lib/git/aliases_and_bindings.sh @@ -163,9 +163,14 @@ if [[ "$git_keyboard_shortcuts_enabled" = "true" ]]; then case "$-" in *i*) # Uses emacs style keybindings, so vi mode is not supported for now - if ! [[ $shell == "bash" ]] || ! set -o | grep -q '^vi .*on$'; then - _bind "$git_commit_all_keys" "\" git_commit_all\n\"" - _bind "$git_add_and_commit_keys" "\"\e[1~ git_add_and_commit \n\"" + if ! set -o | grep -q '^vi .*on$'; then + if [[ $shell == "zsh" ]]; then + _bind "$git_commit_all_keys" " git_commit_all""\n" + _bind "$git_add_and_commit_keys" " \e[1~ git_add_and_commit""\n" + else + _bind "$git_commit_all_keys" "\" git_commit_all\n\"" + _bind "$git_add_and_commit_keys" "\"\e[1~ git_add_and_commit \n\"" + fi fi # Commands are prepended with a space so that they won't be added to history.