如何为 zsh 创建连字符别名?

如何为 zsh 创建连字符别名?

我在用桀骜哦我的zsh在Ubuntu上。

要更改到过去的最近目录,需要设置一个-与 相同的别名cd -。不知何故,别名在我的机器上消失了。这可能是由于我从哦我的zsh存储库。

现在,我想将此别名添加到我自己的点文件中。我怎样才能做到这一点?

答案1

别名已被删除这次提交

要将其添加回来:

alias -- -='cd -'

大多数 POSIX shell 都需要--此别名才能工作,但仅dash不需要:

$ dash
$ alias -='echo 1'
$ -
1

答案2

与任何其他命令一样,用于--指示命令以 开头的后续参数-不是选项。

alias -='cd -'

您可能更喜欢创建-一个函数,以便在它有参数时给它一些用处。在 zsh 中,-是一个前置命令修饰符,它运行一个-前面附加到第零个参数的命令。 (当然,这有点晦涩,你可以使用ARGV0 variable达到相同的效果。)与 不同aliasfunction不是内置命令,而是不带选项的关键字,因此您可以使用function -.

function - {
  if [[ $# -eq 0 ]]; then
    cd "$OLDPWD"
  else
    builtin - "$@"
  fi
}

(或者任何你想做- foo的事情。)

相关内容