Last active
June 8, 2019 01:17
-
-
Save feilongfl/55a293a2305cb6559fedc69ca71a83f3 to your computer and use it in GitHub Desktop.
fish shell显示效果
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
function fish_prompt | |
# - green lines if the last return command is OK, red otherwise | |
# - your user name, in red if root or yellow otherwise | |
# - your hostname, in cyan if ssh or blue otherwise | |
# - the current path (with prompt_pwd) | |
# - date +%X | |
# - the current virtual environment, if any | |
# - the current git status, if any, with __fish_git_prompt | |
# - the current battery state, if any, and if your power cable is unplugged, and if you have "acpi" | |
# - current background jobs, if any | |
# It goes from: | |
# ┬─[nim@Hattori:~]─[11:39:00] | |
# ╰─>$ echo here | |
# To: | |
# ┬─[nim@Hattori:~/w/dashboard]─[11:37:14]─[V:django20]─[G:master↑1|●1✚1…1]─[B:85%, 05:41:42 remaining] | |
# │ 2 15054 0% arrêtée sleep 100000 | |
# │ 1 15048 0% arrêtée sleep 100000 | |
# ╰─>$ echo there | |
set -q __fish_git_prompt_showupstream | |
or set -g __fish_git_prompt_showupstream auto | |
function tips | |
set TIPSFILE '/tmp/BASHTIPS.MD' | |
set TIPSURL 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README-zh.md' | |
set TIPSLENGTH 150 | |
if not test -f $TIPSFILE | |
echo -n load tips from $TIPSURL to $TIPSFILE | |
wget -qO $TIPSFILE $TIPSURL | |
else | |
set -g __fish__tips (cat $TIPSFILE | multimarkdown | grep \<li\> | shuf -n 1 | html2text2) | |
echo $__fish__tips | cut -nc 1-$TIPSLENGTH | |
end | |
end | |
function _nim_prompt_wrapper | |
set retc $argv[1] | |
set field_name $argv[2] | |
set field_value $argv[3] | |
set_color normal | |
set_color $retc | |
echo -n '─' | |
set_color -o green | |
echo -n '[' | |
set_color normal | |
test -n $field_name | |
and echo -n $field_name: | |
set_color $retc | |
echo -n $field_value | |
set_color -o green | |
echo -n ']' | |
end | |
and set retc green | |
or set retc red | |
set_color $retc | |
echo -n '┬─' | |
set_color -o green | |
echo -n [ | |
if test "$USER" = root -o "$USER" = toor | |
set_color -o red | |
else | |
set_color -o yellow | |
end | |
echo -n $USER | |
set_color -o white | |
echo -n @ | |
if [ -z "$SSH_CLIENT" ] | |
set_color -o blue | |
else | |
set_color -o cyan | |
end | |
echo -n (prompt_hostname) | |
set_color -o white | |
echo -n :(prompt_pwd) | |
set_color -o green | |
echo -n ']' | |
# Date | |
_nim_prompt_wrapper $retc '' (date +%X) | |
# tips | |
echo # newline | |
echo -n \| | |
_nim_prompt_wrapper $retc 'tips' (tips) | |
# Virtual Environment | |
set -q VIRTUAL_ENV | |
and _nim_prompt_wrapper $retc V (basename "$VIRTUAL_ENV") | |
# git | |
set prompt_git (__fish_git_prompt | string trim -c ' ()') | |
test -n "$prompt_git" | |
and _nim_prompt_wrapper $retc G $prompt_git | |
# Battery status | |
type -q acpi | |
and test (acpi -a 2> /dev/null | string match -r off) | |
and _nim_prompt_wrapper $retc B (acpi -b | cut -d' ' -f 4-) | |
# New line | |
echo | |
# Background jobs | |
set_color normal | |
for job in (jobs) | |
set_color $retc | |
echo -n '│ ' | |
set_color brown | |
echo $job | |
end | |
set_color normal | |
set_color $retc | |
echo -n '╰─>' | |
set_color -o red | |
echo -n '$ ' | |
set_color normal | |
end |
Author
feilongfl
commented
Jun 8, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment