在Bash我有我PS1的
PS1="\u@\h:\w\$(git branch 2>/dev/null | grep -e '\* ' | sed 's/^..\(.*\)/{\1}/') \$ "
git branch如果我在git repo中,这将显示我的当前.
如何设置PS1in fish以便它会显示我当前的git分支?
Ale*_*tos 110
@glenn已经得到了答案,但我发现了一种更简单的方法来显示鱼的git提示.
从码头,在鱼类,类型fish_config.这将打开一个浏览器窗口.选择第二个选项卡,prompt然后选择Classic + Git`.
这将显示在终端提示符上显示Git所需的命令.将它们复制到您的~/.config/fish/config.fish甚至更简单:单击"使用提示".
这有多棒?
gle*_*man 22
我认为这是等价的
function fish_prompt
set -l git_branch (git branch ^/dev/null | sed -n '/\* /s///p')
echo -n (whoami)'@'(hostname)':'(prompt_pwd)'{'"$git_branch"'} $ '
end
Run Code Online (Sandbox Code Playgroud)
此答案使用已弃用的插入符号重定向到 STDERR。2>代替使用。这是编辑
function fish_prompt
# Change is here: vvv
set -l git_branch (git branch 2>/dev/null | sed -n '/\* /s///p')
# ^^^
echo -n (whoami)'@'(hostname)':'(prompt_pwd)'{'"$git_branch"'} $ '
end
Run Code Online (Sandbox Code Playgroud)
这是我根据上面的提示使用的彩色提示:
function fish_prompt
set_color normal
# https://stackoverflow.com/questions/24581793/ps1-prompt-in-fish-friendly-interactive-shell-show-git-branch
set -l git_branch (git branch 2>/dev/null | sed -n '/\* /s///p')
echo -n (whoami)'@'(hostname)':'
set_color $fish_color_cwd
echo -n (prompt_pwd)
set_color normal
echo -n '{'
set_color purple
echo -n "$git_branch"
set_color normal
echo -n '}'
echo -n ' $ '
end
Run Code Online (Sandbox Code Playgroud)