parent
a282cf4d63
commit
8789a2a83e
33 changed files with 37 additions and 24 deletions
102
cli/.config/zsh/functions.zsh
Normal file
102
cli/.config/zsh/functions.zsh
Normal file
|
@ -0,0 +1,102 @@
|
|||
# Fuck default aliases
|
||||
unalias -a
|
||||
|
||||
testbin() { whence $@ > /dev/null }
|
||||
|
||||
termcompat() {
|
||||
typeset term=$TERM
|
||||
case $term in
|
||||
(alacritty*) ;&
|
||||
(kitty*) ;&
|
||||
(wezterm) ;&
|
||||
(xterm-*)
|
||||
term=xterm;;
|
||||
(rxvt-unicode*)
|
||||
term=rxvt-unicode;;
|
||||
(tmux*)
|
||||
term=screen.xterm-new;;
|
||||
esac
|
||||
TERM=$term command $@
|
||||
}
|
||||
|
||||
addpath() {
|
||||
typeset newpath=$1
|
||||
if [[ ! $PATH =~ $newpath ]]; then
|
||||
PATH+=:$newpath
|
||||
export PATH
|
||||
fi
|
||||
}
|
||||
|
||||
fsf() {
|
||||
typeset host prompt="SSH Remote > "
|
||||
host=$(cut -d\ -f1 $HOME/.ssh/known_hosts | sort -u | fzf --prompt=$prompt) || return 1
|
||||
|
||||
termcompat ssh $host $@
|
||||
}
|
||||
|
||||
beep() { printf $'\007' }
|
||||
fixterm() { printf $'c' }
|
||||
|
||||
diff() { command diff --color $@ }
|
||||
tailf() { command less +F $@ }
|
||||
grep() { command grep --color=auto }
|
||||
rgrep() { grep --color=auto --exclude-dir=\.git -R $@ }
|
||||
fwcmd() { command firewall-cmd $@ }
|
||||
sush() { command sudo -Es }
|
||||
s() { termcompat ssh $@ }
|
||||
|
||||
if testbin nvim; then
|
||||
vi() { command nvim $@ }
|
||||
vim() { command nvim $@ }
|
||||
fi
|
||||
|
||||
tmux() { command tmux -2 $@ }
|
||||
atmux() { tmux attach || tmux }
|
||||
|
||||
g() { command lazygit $@ }
|
||||
tig() { termcompat tig $@ }
|
||||
gsi() { tig status }
|
||||
gci() { command git commit $@ }
|
||||
gsl() { command git stash list $@ }
|
||||
gss() { command git status -sbu $@ }
|
||||
gsw() { command git switch $@ }
|
||||
gup() { command git pull $@ }
|
||||
gwt() { command git worktree $@ }
|
||||
groot() { cd $(command git rev-parse --show-toplevel) || return 1 }
|
||||
ggrep() { command git grep $@ }
|
||||
gdiff() { command git diff --color $@; }
|
||||
greset() {
|
||||
echo "OK to reset and clean teh repo?"
|
||||
read -sq _
|
||||
(( $? )) && return 1
|
||||
/usr/bin/git clean -fd
|
||||
/usr/bin/git reset --hard
|
||||
}
|
||||
|
||||
if testbin diff-so-fancy; then
|
||||
gdf() { gdiff $@ | command diff-so-fancy | command less --tabs=4 -RSFX }
|
||||
else
|
||||
gdf() { gdiff $@ }
|
||||
fi
|
||||
|
||||
if testbin exa; then
|
||||
ls() { command exa --group-directories-first $@ }
|
||||
ll() { ls -alg $@ }
|
||||
ld() { ls -dlg $@ }
|
||||
else
|
||||
ls() { command ls --color=auto --group-directories-first $@ }
|
||||
ll() { ls -alh $@ }
|
||||
ld() { ls -dlh $@ }
|
||||
fi
|
||||
|
||||
# grc
|
||||
if testbin grc; then
|
||||
cmds=(\
|
||||
cc configure cvs df dig gcc gmake id ip last lsof make mount \
|
||||
mtr netstat ping ping6 ps tcpdump traceroute traceroute6 \
|
||||
)
|
||||
for cmd in $cmds[@]; do
|
||||
alias $cmd="command grc -es --colour=auto $cmd"
|
||||
done
|
||||
unset cmds cmd
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue