From 78e7ec2186201a941f47d2f1f7a986bae3828e59 Mon Sep 17 00:00:00 2001 From: Shadab Zafar Date: Sun, 1 Jul 2018 23:43:49 +0530 Subject: [PATCH] Add magic-enter plugin (#4082) * Added magic-enter plugin To bind commonly used tasks to the enter key * Allow the magic-enter commands to be modified by the user --- plugins/magic-enter/Readme.md | 14 +++++++++++++ plugins/magic-enter/magic-enter.plugin.zsh | 24 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 plugins/magic-enter/Readme.md create mode 100644 plugins/magic-enter/magic-enter.plugin.zsh diff --git a/plugins/magic-enter/Readme.md b/plugins/magic-enter/Readme.md new file mode 100644 index 000000000..b401ab415 --- /dev/null +++ b/plugins/magic-enter/Readme.md @@ -0,0 +1,14 @@ +## Magic Enter + +**Maintainer:** [@dufferzafar](https://github.com/dufferzafar) + +Makes your enter key magical, by binding commonly used commands to it. + +You can set the commands to be run in your .zshrc, before the line containing plugins! + +```bash +MAGIC_ENTER_GIT_COMMAND='git status -u .' +MAGIC_ENTER_OTHER_COMMAND='ls -lh .' + +plugins=(magic-enter) +``` diff --git a/plugins/magic-enter/magic-enter.plugin.zsh b/plugins/magic-enter/magic-enter.plugin.zsh new file mode 100644 index 000000000..8e1859678 --- /dev/null +++ b/plugins/magic-enter/magic-enter.plugin.zsh @@ -0,0 +1,24 @@ +# Bind quick stuff to enter! +# +# Pressing enter in a git directory runs `git status` +# in other directories `ls` +magic-enter () { + + # If commands are not already set, use the defaults + [ -z "$MAGIC_ENTER_GIT_COMMAND" ] && MAGIC_ENTER_GIT_COMMAND="git status -u ." + [ -z "$MAGIC_ENTER_OTHER_COMMAND" ] && MAGIC_ENTER_OTHER_COMMAND="ls -lh ." + + if [[ -z $BUFFER ]]; then + echo "" + if git rev-parse --is-inside-work-tree &>/dev/null; then + eval "$MAGIC_ENTER_GIT_COMMAND" + else + eval "$MAGIC_ENTER_OTHER_COMMAND" + fi + zle redisplay + else + zle accept-line + fi +} +zle -N magic-enter +bindkey "^M" magic-enter