Terminal作業をちょっと楽にした話 with zsh


最近Terminal上で作業することが増え,デフォルトのbash/zshでは作業効率が悪かったので,ちょっとだけTerminal環境を構築しました.これだけでかなり効率上がったんで,素bash/zshを使ってる人は是非やってみてください.

prezto

Zshのconfiguration framework(便利な機能をパッといれてくれるもの)です.
auto-completeやsyntax-highlighting,カッコイイpromptなどを一気に入れてくれます.これを入れるだけで随分作業が楽になります.とりあえず入れとけばいいと思います.

参考
zshでpreztoを使う手順
pezto_powerline

enhancd

cdコマンドの拡張です.ディレクトリ移動をめっちゃ簡単にしてくれます.
directoryのfuzzy searchなどを実装しているので,cd testってするだけでtestをfuzzy searchして複数候補をリストしてくれます.その他にも

  • cd : 訪れたdirectoryの履歴を表示・選択できる.めっちゃ便利.
  • cd - : 訪れた直近10件のdirectoryを表示・選択できる. なかなか便利.
  • cd .. : parent directoryを再帰的に表示・選択してくれる.とても便利.

お気に入りはcdで,後述するpecoとあわせることで自分がどこにいても飛びたいdirectoryをincremental searchしてくれます.

参考
ターミナルのディレクトリ移動を高速化する

peco

pecoはインタラクティブにCLをフィルタリングできるツールです.(ps auxなどの結果を絞り込んだりしてくれます)
さらにそこにcommand historyを組み合わせることで,一度打ったコマンドを素早くincremental searchしてくれます.
例えばansible-playbool my_task.yml --connection=local -vvvv --checkとかめっちゃ長いコマンドでもans my taskと打てば一発です.楽ちん

参考
pecoをインストールして、zshのhistoryを軽快に検索

auto_cd

directoryを移動したあとはlsを打つ人が多いと思いますが,これを設定するとcdするだけでlsを自動実行してくれます.

setopt auto_cd
function chpwd() { ls }

をzshrcに追記することで実現できます.細かいけど便利.

zsh-notify

実行時間の長いコマンド(ex. brew install, rspec, vagrant up etc)などの終了をデスクトップに通知として飛ばしてくれます.
とりあえずコマンド打って,別の作業してnotificationが来たらまたterminalに戻って....っていう作業がちょっと楽になります.