Fish shell cd using relative path return: 目录“whatever”不存在

Fish shell cd using relative path return: The directory “whatever” does not exist

我在 fish shell 中遇到 cd 的基本行为问题。

cd 到相对目录

我愿意使用不带 ./ 的相对路径更改目录。目录存在:

❯ ls
addons/  custom-addons/  docker-compose.yml  

该目录是自动完成的,但我无法更改它:

❯ cd addons/
cd: The directory “addons/” does not exist

CDPATH

set -gx CDPATH $CDPATH $HOME/projects

如文档部分所述Special Variables

CDPATH, an array of directories in which to search for the new directory for the cd builtin. By default, the fish configuration defines CDPATH to be a universal variable with the values . and ~.

诊断

我在忽略 .~ 值的同时覆盖了默认值。

解决方案

将它们加回去解决了问题,在 ~/.config/fish/config.fish:

set -gx CDPATH $CDPATH . ~ $HOME/projects

然后重新加载 fish

exec fish