機略戦記

Maneuver warfare

zshでEnterするたびにgit statusを表示するやつが便利すぎる

結果イメージ

f:id:Shinya_131:20150528132631p:plain

やりかた

  • .zshrcにこれを追記
## enterをおした時にls & git status
function do_enter() {
    if [ -n "$BUFFER" ]; then
        zle accept-line
        return 0
    fi
    echo
    echo -e "\e[0;33m--- ls ---\e[0m"
    ls
    # ↓おすすめ
    # ls_abbrev
    if [ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" = 'true' ]; then
        echo
        echo -e "\e[0;33m--- git status ---\e[0m"
        git status -sb
        echo "
        "
    fi
    zle reset-prompt
    return 0
}

zle -N do_enter
bindkey '^m' do_enter

続き

  • ここに書いてあったのを真似した。

qiita.com

よもやま話

私はshellについてまったく詳しくないので、shellのサンプルコードを読んでも意味が分からない事がある。そういう時は、意味が分からない行をとりあえず削除して動作がどう変わるか確認してみている。 (もちろん、問題が発生しても大丈夫な状況にした上で)

こうすると、どんな効果も持っている記述なのかすぐ理解できる場合が多い。

なにかこれに似たものがあったなと思ったら、ノックアウトマウスだった。

ノックアウトマウス - Wikipedia