を書きました。
##動機
元ネタ : git addするファイルをpecoで選択できるようにした
- これを git add だけでなく git reset, git rm, etc でも使いたい
- しかしそのたびにキーバインドを考えるのは嫌だ
- 覚えるのも嫌だ
- ということはカーソル位置にファイルパスを含められれば解決だ
.zshrc
function peco_select_from_git_status(){
git status --porcelain | \
peco | \
awk -F ' ' '{print $NF}' | \
tr '\n' ' '
}
function peco_insert_selected_git_files(){
LBUFFER+=$(peco_select_from_git_status)
CURSOR=$#LBUFFER
zle reset-prompt
}
zle -N peco_insert_selected_git_files
bindkey "^g^s" peco_insert_selected_git_files
これでもう git rm や git diff の直後に ^g^s と打てば peco から git status 内のファイルを絞り込めます。複数個の選択もバッチリです。
しあわせ!