summaryrefslogtreecommitdiff
path: root/plugins/magic-enter
diff options
context:
space:
mode:
authorKozlov Alexander <badryke@gmail.com>2018-11-16 13:38:43 +0300
committerGitHub <noreply@github.com>2018-11-16 13:38:43 +0300
commit8c95c52353118643ac3dbd9b0c185a3129b84bf8 (patch)
treeee7497251b7a541480ae5c6a97b63b14381ed5ee /plugins/magic-enter
parentdd30cf104c9ca42d89d26a134382ca421869ce7e (diff)
parent3d8f2bda599c8c6d160dc448e5ab28aaf2d5e90d (diff)
downloadzsh-8c95c52353118643ac3dbd9b0c185a3129b84bf8.tar.gz
zsh-8c95c52353118643ac3dbd9b0c185a3129b84bf8.tar.bz2
zsh-8c95c52353118643ac3dbd9b0c185a3129b84bf8.zip
Merge branch 'master' into master
Diffstat (limited to 'plugins/magic-enter')
-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