zsh Enterのみでターミナルを見やすい状態にする

はじめに

ターミナルの作業中いちいちls使うの面倒だなと感じてこの際Enter押しただけで色々表示してしまおうと思いました。

環境

  • macOS Sierra
  • zsh 5.4.1 (x86_64-apple-darwin16.7.0)

.zshrc

自分は~/.zshrcに書き込む派なのでzshrcに追記します。
なかったら作りましょう。

~/.zshrc
# 画面をclearして現在のディレクトリパスとディレクトリを表示
function super_cool() {
    clear
    echo -e "\e[31m$(pwd)\e[m"
    ls_abbrev
}

# 行が多かったら短縮表示しそれ以外は普通に表示
ls_abbrev() {
    if [[ ! -r $PWD ]]; then
        return
    fi

    local ls_result
    ls_result=$(CLICOLOR_FORCE=1 COLUMNS=$COLUMNS command $cmd_ls | sed $'/^\e\[[0-9;]*m$/d')

    local ls_lines=$(echo "$ls_result" | wc -l | tr -d ' ')

    if [ $ls_lines -gt 10 ]; then
        echo "$ls_result" | head -n 5
        echo '...'
        echo "$ls_result" | tail -n 5
        echo "$(command ls -1 -A | wc -l | tr -d ' ') files exist"
    else
        ls
    fi
}

# Enterが押されたら呼ばれる(lsしてからgit管理下で変更があったらgit status)
function do_enter() {
    if [ -n "$BUFFER" ]; then
        zle accept-line
        return 0
    fi

    super_cool
    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 # keyバインド

書き込んだら

$ source ~/.zshrc

これで反映されるのでお試しください

参考

https://qiita.com/yuyuchu3333/items/e9af05670c95e2cc5b4d

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.