zshrc: Modernize and backport a bunch from fish
This commit is contained in:
parent
3b305d4571
commit
69ff722e06
1 changed files with 71 additions and 68 deletions
139
zshrc
139
zshrc
|
@ -5,7 +5,6 @@ LISTMAX=32768
|
|||
WORDCHARS="*?[];!#~"
|
||||
local grep=""
|
||||
local grep_color="auto"
|
||||
local fgrep=""
|
||||
local ls=""
|
||||
local ls_color="auto"
|
||||
local ls_on_cd="yes"
|
||||
|
@ -36,59 +35,37 @@ compinit -C
|
|||
# Ignore case on completion
|
||||
zstyle ':completion:*' matcher-list 'm:{A-Z}={a-z} m:{a-z}={A-Z}'
|
||||
|
||||
__find_command() {
|
||||
which "$1" &>/dev/null && echo "$1" || echo "$2"
|
||||
}
|
||||
|
||||
if [ -n "$grep" -o -n "$grep_color" ]; then
|
||||
if [ -z "$grep" ]; then
|
||||
if which ggrep &>/dev/null; then
|
||||
grep="ggrep"
|
||||
else
|
||||
grep="grep"
|
||||
fi
|
||||
fi
|
||||
[ -n "$grep_color" -a "$grep_color[1]" != "-" ] && \
|
||||
: ${grep:=$(__find_command ggrep grep)}
|
||||
[ -n "$grep_color" -a "$grep_color[1]" != - ] &&
|
||||
grep_color="--color=$grep_color"
|
||||
alias grep="$grep $grep_color"
|
||||
fi
|
||||
|
||||
if [ -n "$fgrep" -o -n "$grep_color" ]; then
|
||||
if [ -z "$fgrep" ]; then
|
||||
if which ggrep &>/dev/null; then
|
||||
fgrep="ggrep -F"
|
||||
else
|
||||
fgrep="fgrep"
|
||||
fi
|
||||
fi
|
||||
[ -n "$grep_color" -a "$grep_color[1]" != "-" ] && \
|
||||
grep_color="--color=$grep_color"
|
||||
alias fgrep="$fgrep $grep_color"
|
||||
fi
|
||||
alias fgrep="grep -F"
|
||||
|
||||
if [ -n "$ls" -o -n "$ls_color" ]; then
|
||||
if [ -z "$ls" ]; then
|
||||
if which gls &>/dev/null; then
|
||||
ls="gls"
|
||||
else
|
||||
ls="ls"
|
||||
fi
|
||||
fi
|
||||
[ -n "$ls_color" -a "$ls_color[1]" != "-" ] && \
|
||||
: ${ls:=$(__find_command gls ls)}
|
||||
[ -n "$ls_color" -a "$ls_color[1]" != - ] &&
|
||||
ls_color="--color=$ls_color"
|
||||
alias ls="$ls $ls_color"
|
||||
fi
|
||||
[ "$ls_on_cd" = yes ] && chpwd() { ls }
|
||||
[ "$ls_on_init" = yes ] && ls
|
||||
|
||||
if [ "$ls_on_cd" = "yes" ]; then
|
||||
chpwd() {
|
||||
ls
|
||||
}
|
||||
fi
|
||||
|
||||
if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then
|
||||
update_terminal_cwd() {
|
||||
printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}"
|
||||
}
|
||||
else
|
||||
update_terminal_cwd() {
|
||||
}
|
||||
fi
|
||||
case $TERM_PROGRAM in
|
||||
Apple_Terminal)
|
||||
__update_terminal_cwd() {
|
||||
printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}"
|
||||
}
|
||||
;;
|
||||
*)
|
||||
__update_terminal_cwd() {}
|
||||
;;
|
||||
esac
|
||||
|
||||
set_prompt() {
|
||||
PS1="%m:%c$@%B%(!.#.$)%b "
|
||||
|
@ -99,48 +76,39 @@ set_prompt() {
|
|||
}
|
||||
set_prompt
|
||||
|
||||
_precmd() {
|
||||
__precmd() {
|
||||
update_terminal_cwd
|
||||
|
||||
local branch_name
|
||||
branch_name="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||
branch_name="${branch_name##refs/heads/}"
|
||||
if [ -n "$branch_name" -a "$branch_name" != "master" ]; then
|
||||
local branch
|
||||
branch="%{$(print "\e[1;30m")%}("
|
||||
local branch_name=$(git symbolic-ref HEAD 2>/dev/null)
|
||||
branch_name=${branch_name##refs/heads/}
|
||||
if [ -n "$branch_name" -a "$branch_name" != master ]; then
|
||||
local branch="%{$(print "\e[1;30m")%}("
|
||||
branch+="%{$(print "\e[0;36m")%}$branch_name"
|
||||
branch+="%{$(print "\e[1;30m")%})%{$(print "\e[0m")%}"
|
||||
set_prompt "$branch"
|
||||
else
|
||||
set_prompt
|
||||
fi
|
||||
set_prompt $branch
|
||||
}
|
||||
|
||||
case $TERM in
|
||||
aterm|Eterm|rxvt*|uxterm*|xterm*)
|
||||
|
||||
# Use set_title if you want to change the term title
|
||||
set_title() {
|
||||
# Without this, precmd would override it
|
||||
precmd() {
|
||||
_precmd
|
||||
}
|
||||
precmd() { __precmd }
|
||||
print -Pn "\e]0;$@\a"
|
||||
}
|
||||
|
||||
unset_title() {
|
||||
precmd() {
|
||||
print -Pn "\e]0;%m:%c\a"
|
||||
_precmd
|
||||
__precmd
|
||||
}
|
||||
}
|
||||
|
||||
unset_title
|
||||
;;
|
||||
*)
|
||||
precmd() {
|
||||
_precmd
|
||||
}
|
||||
precmd() { __precmd }
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -163,7 +131,7 @@ extr() {
|
|||
ofarc -x $i
|
||||
;;
|
||||
*.txz | *.tar.xz)
|
||||
xzcat $i | tar xfv -
|
||||
xzcat $i | ofarc -ttar -x -
|
||||
;;
|
||||
*.rar)
|
||||
unrar x $i
|
||||
|
@ -193,14 +161,49 @@ do
|
|||
alias -s "$ext=extr"
|
||||
done
|
||||
|
||||
[ "$EDITOR" = "vim" ] && alias vi=vim
|
||||
[ "$EDITOR" = vim ] && alias vi=vim
|
||||
which gpg2 &>/dev/null && alias gpg=gpg2
|
||||
|
||||
[ "$ls_on_init" = "yes" ] && ls
|
||||
|
||||
function ixio() {
|
||||
curl -F 'f:1=<-' ix.io
|
||||
make() {
|
||||
case "$PWD" in
|
||||
# pkgsrc needs bmake and does not like MAKEFLAGS including -j.
|
||||
*/pkgsrc | */pkgsrc/*)
|
||||
MAKEFLAGS= =$(__find_command bmake make) $@
|
||||
;;
|
||||
*)
|
||||
=make $@
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# pkgsrc does not like MAKEFLAGS including -j
|
||||
which pkg_chk &>/dev/null && alias pkg_chk="MAKEFLAGS= pkg_chk"
|
||||
which pkg_rolling-replace &>/dev/null &&
|
||||
alias pkg_rolling-replace="MAKEFLAGS= pkg_rolling-replace"
|
||||
which url2pkg &>/dev/null && alias url2pkg="MAKEFLAGS= url2pkg"
|
||||
|
||||
alias gpg-ssh="SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh ssh"
|
||||
alias gpg-ssh-add="SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh ssh-add"
|
||||
alias gpg-sftp="SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh sftp"
|
||||
|
||||
__pw() {
|
||||
local clipboard
|
||||
if which pbcopy &>/dev/null; then
|
||||
clipboard=pbcopy
|
||||
elif which xclip &>/dev/null; then
|
||||
clipboard=xclip
|
||||
else
|
||||
echo "No clipboard handler found!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
cryptopassphrase $@ | tr -d '\n' | $clipboard
|
||||
}
|
||||
alias pw="__pw -k ~/.cryptopassphrase.key"
|
||||
alias pws="__pw -k ~/.cryptopassphrase-server.key"
|
||||
|
||||
ixio() { curl -F 'f:1=<-' ix.io }
|
||||
0x0st() { curl -F'file=@-' https://0x0.st }
|
||||
|
||||
unset fgrep grep grep_color ls ls_color ls_on_cd ls_on_init
|
||||
unset HISTFILE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue