我希望鱼壳在提示符下显示完整路径。查看pwd_prompt的源代码,我看到一个名为fish_prompt_pwd_dir_length的变量,如果将其设置为0,该变量应该可以执行我想要的操作。
但是当我什么set -U fish_prompt_pwd_dir_length 0都不做。
在fish_config变量选项卡中,我看到此var设置为0,但仍显示路径减少。
我在做什么错,您实际上可以在不编写自己的pwd_prompt函数的情况下做到这一点?
UPD(2016 年 6 月 20 日):
\n\n自版本 2.3.0(现在是最新版本)以来,一切都按预期工作
\n\n之前的回答:
\n\n到目前为止我的解决方法是复制prompt_pwd到新函数中prompt_pwd_full并稍微修改一下。
Prompt_pwd_full.fish:
\n\nset -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\nRun Code Online (Sandbox Code Playgroud)\n\n注意:我在 OS X 上,所以我扔掉了一堆与它无关的代码,所以它可能无法在其他 OS Xe2x80x99es 中工作。
\n\nUPD: \n正如faho在评论中指出的那样,没有特别的理由重写/private/为/,所以我的函数现在看起来像这样:
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\nRun Code Online (Sandbox Code Playgroud)\n