我已经在~/.zshrc
导入的文件中创建了一组别名,例如:
alias sl='git status -uall'
当我在Terminal中运行别名(如sl
(时,它们会按预期工作。
然而,如果在运行他们的命令之前,他们会打印他们即将运行的命令本身,我会很喜欢。
例如,当我键入sl
并按Return时,如果我在终端git status -uall
中看到该命令的输出,那就太好了。
这样,我就会不断地提醒自己我的别名代表什么。
我怎么能这么做?
一个想法是在定义的开头添加一个对alias
的调用:
$ alias foo='alias foo; echo bar'
$ foo
alias foo='alias foo; echo bar'
bar
bash
最接近自动打印别名值的方法是使用xtrace
选项(尽管它在执行时会将每个命令输出到标准错误(。
您也可以将Readline命令alias-expand-line
绑定到某个密钥。
bind '"C-xC-a": alias-expand-line'
现在输入Control-x,Control-a在输入Enter之前的某个时间将导致bash
在当前命令行上执行别名扩展,使您可以在执行命令之前查看、编辑和/或中止生成的命令。