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%}"
|
||||
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) '
|
||||
|
||||
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
|
||||
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