I've already created a bunch of aliases in a file that my ~/.zshrc imports, such as:
alias sl='git status -uall'
When I run my aliases (such as sl) in Terminal, they work as expected.
However, I'd love if before running their command they would print the commmand itself that they're about to run.
E.g. when I type sl and press Return, it would be great if I then saw in the Terminal git status -uall and then the output of that command.
That way, I'd continually be reminding myself of what my aliases stand for.
How could I do this?
One idea would be to just add a call to alias to the start of your definition:
$ alias foo='alias foo; echo bar'
$ foo
alias foo='alias foo; echo bar'
bar
The closest bash has to automatically printing the value of an alias is to use the xtrace option (though that outputs every command to standard error as it is executed).
You can also bind the Readline command alias-expand-line to some key.
bind '"\C-x\C-a": alias-expand-line'
Now typing Control-x, Control-a sometime before typing Enter will cause bash to perform alias expansion on the current command line in-place, letting you see, edit, and/or abort the resulting command before executing it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With