首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cding时自动修复路径

cding时自动修复路径
EN

Stack Overflow用户
提问于 2013-11-12 04:48:46
回答 1查看 95关注 0票数 1

我将我的主目录从辅助驱动器进行了符号链接。当我在home目录中打开终端时,这会带来不幸的影响,有时会解析符号链接。因此,我的提示符从~/somedir/变成了/Volumes/hdd/home/myuser/somedir/

我尝试在ZSH中通过使用chpwd_functions来解决这个问题:

代码语言:javascript
复制
function fix_home_path() {
  cd $HOME${PWD##$(cd $HOME; pwd -P)}
}
chpwd_functions=(${chpwd_functions[@]} "fix_home_path")

显然,它不能工作,因为它会导致递归循环。

正确的解决方案是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-02-04 18:12:40

有两个可行的解决方案。任一

  1. 将您家的(官方)位置更改为/Volumes/hdd/home/myuser/somedir/。至少在Linux上,变化会发生在/etc/passwd内部或者类似的地方,我不确定OSX。这应该会使任何表现良好的应用程序只使用正确的目录作为主目录,这包括zsh.shell,您还可以仅在
  2. 中更改$HOME的值。在~/.zshenv包含以下内容

export HOME=/Volumes/hdd/home/myuser/somedir/

Zsh将正确处理提示扩展。

PS:如果您希望在提示符中包含奇特/奇怪的扩展,您可以定义一个函数并将其返回值包含在提示符中。例如,在提示符中包含日期的复杂方法:

代码语言:javascript
复制
zsh -f # new zsh with default configuration values.
setopt PROMPT_SUBST
function myfunc() { date }
export PROMPT=' \"$(myfunc)\" %~ ' # single quotes, NOT double quotes!

它将为每个提示显示调用函数myfunc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19915631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档