如何使用fish_prompt_pwd_dir_length在提示符下更改鱼的pwd长度?

kib*_*bin 5 shell fish

我希望鱼壳在提示符下显示完整路径。查看pwd_prompt的源代码,我看到一个名为fish_prompt_pwd_dir_length的变量,如果将其设置为0,该变量应该可以执行我想要的操作。

但是当我什么set -U fish_prompt_pwd_dir_length 0都不做。

fish_config变量选项卡中,我看到此var设置为0,但仍显示路径减少。

我在做什么错,您实际上可以在不编写自己的pwd_prompt函数的情况下做到这一点?

kib*_*bin 4

UPD(2016 年 6 月 20 日):

\n\n

自版本 2.3.0(现在是最新版本)以来,一切都按预期工作

\n\n

之前的回答:

\n\n

到目前为止我的解决方法是复制prompt_pwd到新函数中prompt_pwd_full并稍微修改一下。

\n\n

Prompt_pwd_full.fish:

\n\n
set -l args_pre\nset args_pre $args_pre -e \'s|^/private/|/|\'\n\nfunction prompt_pwd_full -V args_pre\n  set -q fish_prompt_pwd_dir_length; or set -l fish_prompt_pwd_dir_length 1\n\n  if [ $fish_prompt_pwd_dir_length -eq 0 ]\n    set -l fish_prompt_pwd_dir_length 99999\n  end\n\n  set -l realhome ~\n  echo $PWD | sed -e "s|^$realhome|~|" $args_pre -e \'s-\\([^/.]{\'"$fish_prompt_pwd_dir_length"\'}\\)[^/]*/-\\1/-g\'\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

注意:我在 OS X 上,所以我扔掉了一堆与它无关的代码,所以它可能无法在其他 OS Xe2x80x99es 中工作。

\n\n

UPD: \n正如faho在评论中指出的那样,没有特别的理由重写/private//,所以我的函数现在看起来像这样:

\n\n
function prompt_pwd_full\n  set -q fish_prompt_pwd_dir_length; or set -l fish_prompt_pwd_dir_length 1\n\n  if [ $fish_prompt_pwd_dir_length -eq 0 ]\n    set -l fish_prompt_pwd_dir_length 99999\n  end\n\n  set -l realhome ~\n  echo $PWD | sed -e "s|^$realhome|~|" -e \'s-\\([^/.]{\'"$fish_prompt_pwd_dir_length"\'}\\)[^/]*/-\\1/-g\'\nend\n
Run Code Online (Sandbox Code Playgroud)\n