浏览代码

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
Shadab Zafar 6 年之前
父节点
当前提交
78e7ec2186
共有 2 个文件被更改,包括 38 次插入0 次删除
  1. 14 0
      plugins/magic-enter/Readme.md
  2. 24 0
      plugins/magic-enter/magic-enter.plugin.zsh

+ 14 - 0
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)
+```

+ 24 - 0
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