Zsh
tmux

zsh + tmuxで効率的なシェル環境を構築する

はじめに

今更ながらzshとtmuxを使ってみたら劇的に作業効率が高まって感激しているのでメモ。もうbashとscreenには戻れません(bashは別に問題ないとしても、screenはどうも仲良くなれる気がしなかった)。
各々の機能に関する詳細については文中リンクで詳しく記されているのでここでは書かず、設定内容に特化します。
なおMac OSでの使用を前提としています。

完成品(主にtmuxの紹介)

スクリーンショット 2018-06-13 23.10.43.png

zsh

こちらのQiitaの記事がよくまとまっていて、手順に従うだけで簡単に初期設定できました。
これ以外では、.zshrcファイルへ2点変更を加えました。

  • 言語設定を英語にするためexport LANG=en_US.UTF-8のコメントアウトを消す
  • エイリアスを記載した.zprofileを読み込むため、source ~/.zprofileを追記

次にこちらを参照し、プロンプトを自分の好みのものに変更しました。プロンプトの記法がbashとは異なる点に注意が必要です。
また上記リンクでgitの情報を表示する設定も紹介されていて、大変便利です。

さらにzshのタブ補完時に表示される候補の文字色の設定を、普段自分が使っているlsの色と一致させるため、こちらの設定を参照しました。
これでとても快適なシェル環境ができました!

tmux

まずbrew install tmuxでインストール。
.tmux.confについてはこちらの設定をそのままコピーした上で、以下の点を修正

  • Prefixキーについて、Macではctrl-aがカーソルを行頭へ移動させるコマンドなので、他との競合がなさそうなctrl-qへ変更。
    • set -g prefix C-q
  • ステータスバーの色の変更(好みです)
    • set -g status-bg "#000080"
    • setw -g window-status-fg yellow
    • setw -g window-status-current-fg black
    • setw -g window-status-current-bg colour226
  • ペインボーダーについては後述の設定を反映させるためコメントアウト
    • #set -g pane-border-fg green
    • #set -g pane-border-bg black
  • アクティヴなペインはシアンに(やはりただの好み)
    • set -g pane-active-border-bg cyan
  • Prefixキーが押されているかどうかを表示するため、こちらを参照
    • set -g status-left "#[fg=#ff00ff, bg=#000080]#{?client_prefix,#[reverse],}#h #[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
  • リフレッシュ感覚を1秒に
    • set -g status-interval 1

そしてtmuxのステータスバーに負荷・電源・音量・SSIDに関するMacの情報を表示するため、こちらを参照。
個人的にはこの設定に一番感動した。
最後に同じ著者による投稿から、ペインのステータスラインにgitブランチを表示するよう設定。こちらを参照。やはりこの設定も素晴らしい。

おわりに

先人たちの知恵に感謝です。そしてQiitaにも感謝ですね。僕がやっているのはただのキュレーターです。
あとはそろそろdotfilesのGit管理もしなければと思いつつまだ実行できていない今日この頃。

記事で挙げた参考リンク

zsh
https://qiita.com/iwaseasahi/items/a2b00b65ebd06785b443
http://www.sirochro.com/note/terminal-zsh-prompt-customize/
https://qiita.com/yuyuchu3333/items/84fa4e051c3325098be3

tmux
https://qiita.com/succi0303/items/cb396704493476373edf
https://qiita.com/dtan4/items/363e92525e7c5a16f3fc
https://qiita.com/arks22/items/a792d9d43d913c373520
https://qiita.com/arks22/items/db8eb6a14223ce29219a