mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-03-27 03:14:56 +01:00
Add fish_like_pwd to amer theme
This commit is contained in:
parent
382949f24d
commit
dda24a0a5b
1 changed files with 104 additions and 1 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}"
|
MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}"
|
||||||
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
|
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
|
||||||
|
|
||||||
PROMPT='%{$fg[blue]%}[%n@%m%{$reset_color%}%{$fg_bold[white]%}:%{$reset_color%}%{$fg[cyan]%}%~]:%{$reset_color%}%{$fg[red]%}[$(git_prompt_short_sha)%{$reset_color|$(git_prompt_info)%{$fg[red]%}]%{$reset_color
|
PROMPT='%{$fg[blue]%}[%n@%m%{$reset_color%}%{$fg_bold[white]%}:%{$reset_color%}%{$fg[cyan]%}$(fish_like_pwd)]:%{$reset_color%}%{$fg[red]%}[$(git_prompt_short_sha)%{$reset_color|$(git_prompt_info)%{$fg[red]%}]%{$reset_color
|
||||||
$(prompt_char) '
|
$(prompt_char) '
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[green]%}git%{$reset_color%}@%{$bg[white]%}%{$fg[black]%}"
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[green]%}git%{$reset_color%}@%{$bg[white]%}%{$fg[black]%}"
|
||||||
|
|
@ -24,3 +24,106 @@ function prompt_char() {
|
||||||
git branch >/dev/null 2>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return
|
git branch >/dev/null 2>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return
|
||||||
echo "%{$fg[cyan]%}◯ %{$reset_color%}"
|
echo "%{$fg[cyan]%}◯ %{$reset_color%}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fish_like_pwd() {
|
||||||
|
## vim:ft=zsh
|
||||||
|
## reverse tabbing, useful in the prompt
|
||||||
|
## Copyright (C) 2008 by Daniel Friesel <derf@xxxxxxxxxxxxxxxxxx>
|
||||||
|
## License: WTFPL <http://sam.zoy.org/wtfpl>
|
||||||
|
|
||||||
|
## CAVEAT: directory-names containing two or more consecutive spaces
|
||||||
|
## are not yet supported
|
||||||
|
|
||||||
|
setopt localoptions
|
||||||
|
setopt rc_quotes null_glob
|
||||||
|
|
||||||
|
typeset -i lastfull=0
|
||||||
|
typeset -i short=0
|
||||||
|
typeset -i tilde=0
|
||||||
|
typeset -i named=0
|
||||||
|
|
||||||
|
if zstyle -t ':prompt:rtab' fish; then
|
||||||
|
lastfull=1
|
||||||
|
short=1
|
||||||
|
tilde=1
|
||||||
|
fi
|
||||||
|
if zstyle -t ':prompt:rtab' nameddirs; then
|
||||||
|
tilde=1
|
||||||
|
named=1
|
||||||
|
fi
|
||||||
|
zstyle -t ':prompt:rtab' last && lastfull=1
|
||||||
|
zstyle -t ':prompt:rtab' short && short=1
|
||||||
|
zstyle -t ':prompt:rtab' tilde && tilde=1
|
||||||
|
|
||||||
|
while [[ $1 == -* ]]; do
|
||||||
|
case $1 in
|
||||||
|
-f|--fish)
|
||||||
|
lastfull=1
|
||||||
|
short=1
|
||||||
|
tilde=1
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
print 'Usage: rtab [-f -l -s -t] [directory]'
|
||||||
|
print ' -f, --fish fish-simulation, like -l -s -t'
|
||||||
|
print ' -l, --last Print the last directory''s full name'
|
||||||
|
print ' -s, --short Truncate directory names to the first character'
|
||||||
|
print ' -t, --tilde Substitute ~ for the home directory'
|
||||||
|
print ' -T, --nameddirs Substitute named directories as well'
|
||||||
|
print 'The long options can also be set via zstyle, like'
|
||||||
|
print ' zstyle :prompt:rtab fish yes'
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
-l|--last) lastfull=1 ;;
|
||||||
|
-s|--short) short=1 ;;
|
||||||
|
-t|--tilde) tilde=1 ;;
|
||||||
|
-T|--nameddirs)
|
||||||
|
tilde=1
|
||||||
|
named=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
typeset -a tree expn
|
||||||
|
typeset result part dir=${1-$PWD}
|
||||||
|
typeset -i i
|
||||||
|
|
||||||
|
[[ -d $dir ]] || return 0
|
||||||
|
|
||||||
|
if (( named )) {
|
||||||
|
for part in ${(k)nameddirs}; {
|
||||||
|
[[ $dir == ${nameddirs[$part]}(/*|) ]] && dir=${dir/${nameddirs[$part]}/\~$part}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
(( tilde )) && dir=${dir/$HOME/\~}
|
||||||
|
tree=(${(s:/:)dir})
|
||||||
|
(
|
||||||
|
unfunction chpwd 2> /dev/null
|
||||||
|
if [[ $tree[1] == \~* ]] {
|
||||||
|
cd ${~tree[1]}
|
||||||
|
result=$tree[1]
|
||||||
|
shift tree
|
||||||
|
} else {
|
||||||
|
cd /
|
||||||
|
}
|
||||||
|
for dir in $tree; {
|
||||||
|
if (( lastfull && $#tree == 1 )) {
|
||||||
|
result+="/$tree"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
expn=(a b)
|
||||||
|
part=''
|
||||||
|
i=0
|
||||||
|
until [[ (( ${#expn} == 1 )) || $dir = $expn || $i -gt 99 ]] do
|
||||||
|
(( i++ ))
|
||||||
|
part+=$dir[$i]
|
||||||
|
expn=($(echo ${part}*(/)))
|
||||||
|
(( short )) && break
|
||||||
|
done
|
||||||
|
result+="/$part"
|
||||||
|
cd $dir
|
||||||
|
shift tree
|
||||||
|
}
|
||||||
|
echo ${result:-/}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue