86 lines
2.0 KiB
Bash
86 lines
2.0 KiB
Bash
# select-history
|
|
function peco-select-history() {
|
|
local tac
|
|
if which tac > /dev/null; then
|
|
tac="tac"
|
|
else
|
|
tac="tail -r"
|
|
fi
|
|
BUFFER=$(\history -n 1 | eval $tac | awk '!a[$0]++' | peco --query "$LBUFFER")
|
|
CURSOR=$#BUFFER
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-select-history
|
|
bindkey '^r' peco-select-history
|
|
|
|
function peco-cd () {
|
|
local selected_dir=$(find ~/ -type d | peco)
|
|
if [ -n "$selected_dir" ]; then
|
|
BUFFER="cd ${selected_dir}"
|
|
zle accept-line
|
|
fi
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-cd
|
|
bindkey '^x^f' peco-cd
|
|
|
|
function peco-kill-process () {
|
|
ps -ef | peco | awk '{ print $2 }' | xargs kill
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-kill-process
|
|
bindkey '^xk' peco-kill-process
|
|
|
|
function peco-find-file-emacs () {
|
|
ls | peco | xargs emacsclient -n
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-find-file-emacs
|
|
bindkey '^x^f' peco-find-file-emacs
|
|
|
|
function peco-kill-tmux-windows () {
|
|
tmux list-windows | peco | awk -F':' '{print $1}' | xargs tmux kill-window -t
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-kill-tmux-windows
|
|
bindkey '^x^pp' peco-kill-tmux-windows
|
|
|
|
function peco-kill-ps () {
|
|
ps aux | peco | awk -F' ' '{print $2}' | xargs kill
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-kill-ps
|
|
bindkey '^x^pk' peco-kill-ps
|
|
|
|
function peco-git-checkout () {
|
|
branch=$(git branch -a | peco | tr -d ' ')
|
|
if [ -n "$branch" ]; then
|
|
if [[ "$branch" =~ "remotes/" ]]; then
|
|
b=$(echo $branch | awk -F'/' '{print $3}')
|
|
git checkout -b ${b} ${branch}
|
|
else
|
|
git checkout ${branch}
|
|
fi
|
|
fi
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-git-checkout
|
|
bindkey '^xg' peco-git-checkout
|
|
|
|
# ghq
|
|
function peco-ghq-list () {
|
|
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
|
|
if [ -n "$selected_dir" ]; then
|
|
BUFFER="cd ${selected_dir}"
|
|
zle accept-line
|
|
fi
|
|
zle clear-screen
|
|
}
|
|
zle -N peco-ghq-list
|
|
bindkey '^]' peco-ghq-list
|
|
|
|
# ag
|
|
function peco-ag-emacs () {
|
|
ag $@ | peco --query "$LBUFFER" | awk -F : '{print "+" $2 " " $1}' | xargs emacsclient -n
|
|
}
|