Wie kann ich die Eingabe eines Befehlsnamens in zsh zweimal korrigieren?

634
Rufo Sanchez

Ich habe also diese (schlechte) Angewohnheit git, zu git statustippen, eine Sekunde lang anzuhalten, um einen Blick auf die Ausgabe des gerade eingegebenen Befehls zu werfen, und dann git add ...danach zu tippen, was dazu führt, dass das eher erfolglos ist git git add ....

Gibt es eine Funktionalität von zsh, die es mir erlauben würde, sie immer durch git gitein singuläres Äquivalent zu ersetzen ?

2
haha Ich habe das genau gestern mit einem anderen Befehl gemacht. Ich wünschte, ich könnte helfen, aber ich bin ein bash-Benutzer und verstehe diese schicke Z-Shell nicht. :) quack quixote vor 14 Jahren 0
Ich mache das die ganze Zeit Roy Rico vor 14 Jahren 0

2 Antworten auf die Frage

3
Teddy

Ich kann keine Kommentare bearbeiten, deshalb gibt es hier eine funktionierende Version für alle Borne-Shells:

git(){ if [ "$1" = git ]; then shift; fi; command git "$@"; } 
Das scheint hervorragend zu funktionieren - vielen Dank. Mein Shell-Fu ist ziemlich schwach, aber ich habe mich langsam verstärkt und das zeigt mehr als ein paar Dinge, von denen ich denke, dass sie sich als nützlich erweisen werden. Rufo Sanchez vor 14 Jahren 0
1
Dennis Williamson

Eine Möglichkeit wäre eine Wrapper-Funktion:

function git { if [[ $1 == "git" ]]; then shift; fi; /path/to/git $@; } 

Das zweite "git" wird verworfen, wenn es vorhanden ist und gitmit den angeforderten Parametern ausgeführt wird. Dies sollte in zsh, Bash und ksh funktionieren.