Rya*_*yan 3 macos bash alias zsh oh-my-zsh
我已经在导入的文件中创建了一堆别名~/.zshrc,例如:
alias sl='git status -uall'
Run Code Online (Sandbox Code Playgroud)
当我在终端中运行别名(例如sl)时,它们按预期工作。
但是,我希望在运行命令之前他们能够打印他们将要运行的命令本身。
例如,当我输入并按回车键时,如果我随后在终端中看到该命令的输出,sl那就太好了。git status -uall
这样,我就会不断提醒自己我的别名代表什么。
我怎么能这样做呢?
alias一个想法是在定义的开头添加一个调用:
$ alias foo='alias foo; echo bar'
$ foo
alias foo='alias foo; echo bar'
bar
Run Code Online (Sandbox Code Playgroud)
最接近bash自动打印别名值的是使用该xtrace选项(尽管它在执行时将每个命令输出到标准错误)。
您还可以将 Readline 命令绑定alias-expand-line到某个键。
bind '"\C-x\C-a": alias-expand-line'
Run Code Online (Sandbox Code Playgroud)
现在,在输入 Enter 之前输入 Control-x、Control-a 将导致bash在当前命令行上就地执行别名扩展,让您在执行结果命令之前查看、编辑和/或中止结果命令。