@ -268,6 +268,8 @@ alias cp="cp -i"
alias df = "df -h"
alias free = "free -m"
alias grep = "grep --color=auto"
alias open = "xdg-open"
#transfer() { if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi
#tmpfile=$( mktemp -t transferXXX ); if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; else curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile; }
@ -295,5 +297,117 @@ alias adbcap="adb shell screencap -p"
# fzf config
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export FZF_DEFAULT_COMMAND = 'ag -g ""'
export FZF_DEFAULT_OPTS = "--reverse --inline-info"
export FZF_DEFAULT_COMMAND = 'ag --hidden --ignore .git --ignore .idea -l -g ""'
#export FZF_DEFAULT_OPTS="--reverse --inline-info"
export FZF_DEFAULT_OPTS = "--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'"
# fe [FUZZY PATTERN] - Open the selected file with the default editor
# - Bypass fuzzy finder if there's only one match (--select-1)
# - Exit if there's no match (--exit-0)
fe( ) {
local files
IFS = $'\n' files = ( $( fzf-tmux --query= " $1 " --multi --select-1 --exit-0) )
[ [ -n " $files " ] ] && ${ EDITOR :- vim } " ${ files [@] } "
}
# Modified version where you can press
# - CTRL-O to open with `open` command,
# - CTRL-E or Enter key to open with the $EDITOR
fo( ) {
local out file key
IFS = $'\n' out = ( " $( fzf-tmux --query= " $1 " --exit-0 --expect= ctrl-o,ctrl-e) " )
key = $( head -1 <<< " $out " )
file = $( head -2 <<< " $out " | tail -1)
if [ -n " $file " ] ; then
[ " $key " = ctrl-o ] && open " $file " || ${ EDITOR :- vim } " $file "
fi
}
# Use fd and fzf to get the args to a command.
# Works only with zsh
# Examples:
# f mv # To move files. You can write the destination after selecting the files.
# f 'echo Selected:'
# f 'echo Selected music:' --extention mp3
# fm rm # To rm files in current directory
f( ) {
sels = ( " ${ (@f) $( fd " ${ fd_default [@] } " " ${ @ : 2 } " | fz) } " )
test -n " $sels " && print -z -- " $1 ${ sels [@] : q : q } "
}
# Like f, but not recursive.
fm( ) f " $@ " --max-depth 1
# Deps
alias fz = "fzf-noempty --bind 'tab:toggle,shift-tab:toggle+beginning-of-line+kill-line,ctrl-j:toggle+beginning-of-line+kill-line,ctrl-t:top' --color=light -1 -m"
fzf-noempty ( ) {
local in = " $( </dev/stdin) "
test -z " $in " && (
exit 130
) || {
ec " $in " | fzf " $@ "
}
}
ec ( ) {
if [ [ -n $ZSH_VERSION ] ]
then
print -r -- " $@ "
else
echo -E -- " $@ "
fi
}
# fd - cd to selected directory
fd( ) {
local dir
dir = $( find ${ 1 :- . } -path '*/\.*' -prune \
-o -type d -print 2> /dev/null | fzf +m) &&
cd " $dir "
}
# fh - repeat history
fh( ) {
print -z $( ( [ -n " $ZSH_NAME " ] && fc -l 1 || history ) | fzf +s --tac | sed -r 's/ *[0-9]*\*? *//' | sed -r 's/\\/\\\\/g' )
}
# fkill - kill process
fkill( ) {
local pid
pid = $( ps -ef | sed 1d | fzf -m | awk '{print $2}' )
if [ " x $pid " != "x" ]
then
echo $pid | xargs kill -${ 1 :- 9 }
fi
}
# tm - create new tmux session, or switch to existing one. Works from within tmux too. (@bag-man)
# `tm` will allow you to select your tmux session via fzf.
# `tm irc` will attach to the irc session (if it exists), else it will create it.
tm( ) {
[ [ -n " $TMUX " ] ] && change = "switch-client" || change = "attach-session"
if [ $1 ] ; then
tmux $change -t " $1 " 2>/dev/null || ( tmux new-session -d -s $1 && tmux $change -t " $1 " ) ; return
fi
session = $( tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux $change -t " $session " || echo "No sessions found."
}
# fs [FUZZY PATTERN] - Select selected tmux session
# - Bypass fuzzy finder if there's only one match (--select-1)
# - Exit if there's no match (--exit-0)
fs( ) {
local session
session = $( tmux list-sessions -F "#{session_name}" | \
fzf --query= " $1 " --select-1 --exit-0) &&
tmux switch-client -t " $session "
}
unalias z 2> /dev/null
z( ) {
[ $# -gt 0 ] && _z " $* " && return
cd " $( _z -l 2>& 1 | fzf --height 40% --nth 2.. --reverse --inline-info +s --tac --query " ${ *##-* } " | sed 's/^[0-9,.]* *//' ) "
}
#alias lp="lpass show -c --password $(lpass ls | fzf | awk '{print $(NF)}' | sed 's/\]//g')"