Zsh别名无法像在bash中一样工作

3

我在我的.bashrc中使用这个别名,但在使用.zshrc时似乎不起作用。我使用的其他别名都能正常工作,所以我知道.zshrc正在源代码中引用其他别名。

alias rubydev3="cd ~/code/ruby/rails/rails3projects/"

这是错误信息:
cd:cd:10: no such file or directory: /home/jryan/code/ruby/rails/rails3tutorial/

我不知道cd:cd:10是否有任何提示的含义,但我刚开始使用zsh,所以我很困惑。如果命令应该像我在这篇文章中展示的那样工作,那么它可能与其他配置文件冲突或类似的问题有关。


看起来你已经错误地将 cd 重新定义为一个函数。type cd 显示什么? - Gilles 'SO- stop being evil'
在别名中使用\cd或'builtin cd'时请避免这种情况。 - zzapper
3个回答

1
尝试定义一个函数而不是别名:

function 而不是 alias

function rubydev3 {
    builtin cd ~/code/ruby/rails/rails3projects/
}

0

当您尝试使用别名或处理~/.zshrc时,是否会发出错误消息?我注意到错误消息与别名具有不同的目录。请尝试此命令:

type -a rubydev3

它将向您展示如何定义"rubydev3"。

有可能正在重新定义它。

此外,cd可能已被别名化,这可能会干扰。要解决这个问题,请使用以下命令:

alias rubydev3="builtin cd ~/code/ruby/rails/rails3projects/"

0

万一 - 你在使用rvm吗?这会为cd添加功能,请尝试关闭它。

export rvm_project_rvmrc=0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接