Last active
November 28, 2020 13:37
-
-
Save davidmh/721241c7c34f841eed07 to your computer and use it in GitHub Desktop.
Showing git branch in fish shell prompt. Put following code at the end of ~/.config/fish/config.fish. It will also highlight in red if branch is dirty. Based on http://zogovic.com/post/37906589287/showing-git-branch-in-fish-shell-prompt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set fish_git_dirty_color red | |
set fish_git_not_dirty_color green | |
function parse_git_branch | |
set -l branch (git branch 2> /dev/null | grep -e '\* ' | sed 's/^..\(.*\)/\1/') | |
set -l git_status (git status -s) | |
if test -n "$git_status" | |
echo (set_color $fish_git_dirty_color)$branch(set_color normal) | |
else | |
echo (set_color $fish_git_not_dirty_color)$branch(set_color normal) | |
end | |
end | |
function fish_prompt | |
set -l git_dir (git rev-parse --git-dir 2> /dev/null) | |
if test -n "$git_dir" | |
printf '%s@%s %s%s%s:%s> ' (whoami) (hostname|cut -d . -f 1) (set_color $fish_color_cwd) (prompt_pwd) (set_color normal) (parse_git_branch) | |
else | |
printf '%s@%s %s%s%s> ' (whoami) (hostname|cut -d . -f 1) (set_color $fish_color_cwd) (prompt_pwd) (set_color normal) | |
end | |
end |
You can also just type fish_config
on the command line, click on prompt
and select a prompt with the current branch from the large number of prompts offered. I use lonetwin
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this