使命令行别名显示真正的命令(Mac)



我已经在~/.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在当前命令行上执行别名扩展,使您可以在执行命令之前查看、编辑和/或中止生成的命令。

最新更新