summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2018-07-01 23:43:49 +0530
committerMarc Cornellà <marc.cornella@live.com>2018-07-01 20:13:49 +0200
commit78e7ec2186201a941f47d2f1f7a986bae3828e59 (patch)
tree98117a72a3d42dcca9b19a1d38606164ec95740f
parent2de926aa109181907def20c21f28d8a5e32b9d85 (diff)
downloadzsh-78e7ec2186201a941f47d2f1f7a986bae3828e59.tar.gz
zsh-78e7ec2186201a941f47d2f1f7a986bae3828e59.tar.bz2
zsh-78e7ec2186201a941f47d2f1f7a986bae3828e59.zip
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
-rw-r--r--plugins/magic-enter/Readme.md14
-rw-r--r--plugins/magic-enter/magic-enter.plugin.zsh24
2 files changed, 38 insertions, 0 deletions
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