summaryrefslogtreecommitdiff
path: root/plugins/magic-enter
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2019-10-24 17:57:01 +0200
committerGitHub <noreply@github.com>2019-10-24 17:57:01 +0200
commitcad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9 (patch)
tree2b07ec259bbd2b1a4919245669900a87fa87a03b /plugins/magic-enter
parent225425fe091ca052997833279ccc08643818c24a (diff)
parent40df67bc3b9b51caa24df5d220487043040d1f9a (diff)
downloadzsh-cad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9.tar.gz
zsh-cad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9.tar.bz2
zsh-cad48e38bfbfa6e3e0096caddf330d6fc8f1ffb9.zip
Merge branch 'master' into fabric_task_description
Diffstat (limited to 'plugins/magic-enter')
-rw-r--r--plugins/magic-enter/Readme.md17
-rw-r--r--plugins/magic-enter/magic-enter.plugin.zsh24
2 files changed, 41 insertions, 0 deletions
diff --git a/plugins/magic-enter/Readme.md b/plugins/magic-enter/Readme.md
new file mode 100644
index 000000000..78514c67d
--- /dev/null
+++ b/plugins/magic-enter/Readme.md
@@ -0,0 +1,17 @@
+## Magic Enter plugin
+
+This plugin makes your enter key magical, by binding commonly used commands to it.
+
+To use it, add `magic-enter` to the plugins array in your zshrc file. You can set the
+commands to be run in your .zshrc, before the line containing plugins. If no command
+is specified in a git directory, `git status` is executed; in other directories, `ls`.
+
+```zsh
+# defaults
+MAGIC_ENTER_GIT_COMMAND='git status -u .'
+MAGIC_ENTER_OTHER_COMMAND='ls -lh .'
+
+plugins=(... magic-enter)
+```
+
+**Maintainer:** [@dufferzafar](https://github.com/dufferzafar)
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