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 usermaster
parent
2de926aa10
commit
78e7ec2186
2 changed files with 38 additions and 0 deletions
@ -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) |
||||
``` |
||||
@ -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 |
||||
Loading…
Reference in new issue