Fish shell 根据我所在的目录交替添加 ~ 和 >

Fish shell 根据我所在的目录交替添加 ~ 和 >

我是 Fish shell 的新手;然而,我在目录之间导航时观察到一些奇怪的行为。

下面是我的 shell 的输出。

最初,所有命令都以 为前缀~;但是,我发现当我进入某些目录时,所有命令都以 为前缀>

& user @ computer in ~/dev 0 [19:47:17]
~ cd souffle-example/                        0 [19:47:17]
> ls                                         0 [19:47:20]
edge.facts  example.dl  path.csv

有人能解释一下为什么 shell 在进入某些目录时会进入不同的“模式”以及不同的“模式”代表什么吗?

编辑:

运行后type fish_prompt得到以下输出:

fish_prompt is a function with definition
# Defined in /home/user/.config/fish/functions/fish_prompt.fish @ line 1
function fish_prompt
  # Cache exit status

  # Just calculate these once, to save a few cycles when displaying the prompt
  if not set -q __fish_prompt_hostname
    set -g __fish_prompt_hostname (hostname|cut -d . -f 1)
  end
  if not set -q __fish_user
    switch (id -u)
      case 0
         set -g __fish_user '#'
      case '*'
         set -g __fish_user '&'
    end
  end
  set -g __fish_prompt_char '~'

  # Setup colors
  set -l normal (set_color normal)
  set -l white (set_color FFFFFF)
  set -l turquoise (set_color 5fdfff)
  set -l orange (set_color df5f00)
  set -l hotpink (set_color df005f)
  set -l blue (set_color 53D1ED)
  set -l green (set_color 87ff00)
  set -l greeno (set_color -o 87ff00)
  set -l purple (set_color af5fff)
  set -l red (set_color FF0000)
  set -l redo (set_color -o FF0000)
  set -l yellow (set_color E0D757)

  # Configure __fish_git_prompt
  set -g __fish_git_prompt_char_stateseparator ' '
  set -g __fish_git_prompt_color 5fdfff
  set -g __fish_git_prompt_color_flags df5f00
  set -g __fish_git_prompt_color_prefix white
  set -g __fish_git_prompt_color_suffix white
  set -g __fish_git_prompt_showdirtystate true
  set -g __fish_git_prompt_showuntrackedfiles true
  set -g __fish_git_prompt_showstashstate true
  set -g __fish_git_prompt_show_informative_status true

  # Env
  set -l last_status $status
  set -l __work_dir (string replace $HOME '~' (pwd))

  # Last status
  set -l __exit_code -1
  set -l __prompt 'y'
  if test $last_status -eq 0
    set __prompt $greeno$__fish_prompt_char$greeno' '
    set __exit_code $white'0'
  else
   set __prompt $redo'x '
   set __exit_code $redo$last_status
  end
  # Time
  set -l __time $white'['(date +%H:%M:%S)']'


  # Line
  echo -sne '\n'$purple$__fish_user' '$blue$USER$white \
    ' @ '$green$__fish_prompt_hostname$white \
    ' in '$yellow$__work_dir$turquoise \
    (__fish_git_prompt) \
    ' '$__exit_code \
    ' '$__time \
    '\n' \
    $__prompt;
end

我安装的唯一扩展是 oh-my-fish,并且我通过命令激活了“ays”主题omf install ays

相关内容