Edited at

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 の設定は以下にあるので良ければどうぞ。

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