zsh 别名与默认参数,但也可覆盖

Ale*_*yne 12 bash zsh command-line

我目前有一个像这样的 zsh 别名设置。

alias e="subl"
Run Code Online (Sandbox Code Playgroud)

这让我e somedir可以在 SublimeText 中打开一个目录。或e .打开当前目录。

但是,我希望能够设置.为默认参数,或者我可以选择传入另一个目录。

所以e应该扩展到subl .

并且e somedir应该扩展到subl somedir

究竟是如何设置的?别名甚至是我在这里需要的吗?

小智 25

我会使用一个函数:

function e() {
    if [ "$1" != "" ]
    then
        subl $1
    else
        subl .
    fi
}
Run Code Online (Sandbox Code Playgroud)

将其添加到.profile

  • +1 用于使用功能。您可以将其缩短为:`e() { subl "${1:-.}"; }` (20认同)