Mine is just a lightly-modified version of the built-in prompt. It turns out 
the built-in prompt was actually extremely similar to my bash prompt, but 
without the proper colors or git status. So I just copied it, added more color 
support, and added git.

function fish_prompt --description 'Write out the prompt'

        set -l last_status $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_prompt_normal
                set -g __fish_prompt_normal (set_color normal)
        end

        set -l delim '>'

        switch $USER

        case root

                if not set -q __fish_prompt_cwd
                        if set -q fish_color_cwd_root
                                set -g __fish_prompt_cwd (set_color 
$fish_color_cwd_root)
                        else
                                set -g __fish_prompt_cwd (set_color 
$fish_color_cwd)
                        end
                end

        case '*'

                if not set -q __fish_prompt_cwd
                        set -g __fish_prompt_cwd (set_color $fish_color_cwd)
                end

        end

        set -l prompt_status
        if test $last_status -ne 0
                if not set -q __fish_prompt_status
                        set -g __fish_prompt_status (set_color 
$fish_color_status)
                end
                set prompt_status "$__fish_prompt_status 
[$last_status]$__fish_prompt_normal"
        end

        if not set -q __fish_prompt_user
                set -g __fish_prompt_user (set_color $fish_color_user)
        end
        if not set -q __fish_prompt_host
                set -g __fish_prompt_host (set_color $fish_color_host)
        end

        echo -n -s "$__fish_prompt_user" "$USER" "$__fish_prompt_normal" @ 
"$__fish_prompt_host" "$__fish_prompt_hostname" "$__fish_prompt_normal" ' ' 
"$__fish_prompt_cwd" (prompt_pwd) (__fish_git_prompt) "$__fish_prompt_normal" 
"$prompt_status" "$delim" ' '
end

function __fish_repaint_user --on-variable fish_color_user --description "Event 
handler, repaint when fish_color_user changes"
        if status --is-interactive
                set -e __fish_prompt_user
                commandline -f repaint ^/dev/null
        end
end

function __fish_repaint_host --on-variable fish_color_host --description "Event 
handler, repaint when fish_color_host changes"
        if status --is-interactive
                set -e __fish_prompt_host
                commandline -f repaint ^/dev/null
        end
end

function __fish_repaint_status --on-variable fish_color_status --description 
"Event handler; repaint when fish_color_status changes"
        if status --is-interactive
                set -e __fish_prompt_status
                commandline -f repaint ^/dev/null
        end
end

# initialize our new variables
# in theory this would be in a fish_prompt event, but this file isn't sourced
# until the fish_prompt function is called anyway.
if not set -q __prompt_initialized_2
        set -U fish_color_user -o green
        set -U fish_color_host -o cyan
        set -U fish_color_status red
        set -U __prompt_initialized_2
end


On Aug 26, 2012, at 1:39 PM, ridiculous_fish <corydo...@ridiculousfish.com> 
wrote:

> Hello fellow fish fans,
> 
> I'm working on a prompt editor, which will include a bunch of sample prompts 
> that the user can preview and then use (or edit). I'd like to include real 
> prompts contributed by real users, showing the range possible prompts.
> 
> If you're willing, please send me the following:
> 
> - Your fish_prompt function, or file if it contains multiple functions
> - A suggested short name for it, hopefully descriptive ("Minimalist", "Git 
> Savvy" ), or evocative ("Lotus Blossom"), or failing that, your name is fine 
> ("Richards")
> - If you like, an attribution line ("John Doe's prompt - 
> http://www.mysite.com";)
> 
> You can send it directly to me at corydo...@ridiculousfish.com, or post it to 
> the list if you want to strut your stuff.
> 
> For the record, here's my prompt, which I'm calling "Minimalist" (but may 
> change it if we get a bunch of minimalist prompts):
> 
> function fish_prompt
>       set_color $fish_color_cwd
>       echo -n (basename $PWD)
>       set_color normal
>       echo -n ' ) '
> end
> 
> Thanks for any and all contributions!
> 
> _fish
> 
> 
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Fish-users mailing list
> Fish-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fish-users


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Fish-users mailing list
Fish-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fish-users

Reply via email to