みんな大好きpecoを使って、git add出来るようにした
コード
function peco-select-gitadd() { local selected_file_to_add=$(git status --porcelain | \ peco --query "$LBUFFER" | \ awk -F ' ' '{print $NF}') if [ -n "$selected_file_to_add" ]; then BUFFER="git add ${selected_file_to_add}" CURSOR=$#BUFFER zle accept-line fi zle clear-screen } zle -N peco-select-gitadd bindkey "^g^a" peco-select-gitadd
これでCtrl-g+Ctrl-aとtypeすると上のデモのようにgit addするファイルが選べる
git add出来るファイル一覧をいい感じに取るのが難しく、git status --porcelain(--short)での出力結果をパースしてファイル名を取るようにした。
結果としてgit add出来る理由も表示出来たので、これはこれでいいかもしれない
疑問
git add出来るファイル、つまりunstagedあるいはuntrackedなファイルって、何か名称があるんだろうか