Zsh
Git
Terminal

Enter で ls と git status を表示すると便利

More than 5 years have passed since last update.

とある方の
"エンターだけで ls と git status 表示するようにしてある"
というつぶやきを見て便利そうだと思ったのでやってみました。

qiita_do_enter.png

基本的なやり方は以下の記事が参考になりました。

ただ、上記方法では私の環境の場合、プロンプトが1回余分に表示されてしまって気持ちが悪いので、その辺りも手を加えました。

Installation

以下スクリプトを .zshrc に記述すれば、何も入力されていない状態で Enter を打つだけで lsgit status が表示されるようになります。

.zshrc
function do_enter() {
    if [ -n "$BUFFER" ]; then
        zle accept-line
        return 0
    fi
    echo
    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
    fi
    zle reset-prompt
    return 0
}
zle -N do_enter
bindkey '^m' do_enter

ls は以下記事の ls_abbrev を使用するのがお勧めです。

Enter はちょっとやり過ぎという方は別のキーに割り当てると良いでしょう。

おわり

lscd の入力をどれだけ減らせるかというのは、ターミナル使用者の力量が問われる部分ではないでしょうか。
(最近Twitterで cd後のls や mkdir後のls/cd の話が少し話題になってましたね)

そんな私の zsh の設定は以下にあるので良ければどうぞ。

また、良いアイディアやアドバイスなどありましたら教えてください。