こんにちは。バックエンドエンジニアのまさくにです。
さて、僕らは人生で何回cdコマンドを打つことになるのでしょう。わかりません。わかりませんが、膨大な数を打つことになるのは明らかです。僕はFinderもあまり開かないので、だいたいのディレクトリへターミナルで移動します。lsコマンドか、cdコマンドが人生でもっとも打ち込むコマンドになるでしょう。
ターミナルを開く、cdと打って~からワークディレクトリへ移動する。気がつかなければ、それが普通の、極めて平穏な日々。ターミナルを開く。cdを打つ。タブ補完便利だなぁと思いながら何階層も下のディレクトリに潜り、息継ぎをするように上位階層に上がってくる。またcdを打ち、長いパスを入れる。毎日はその繰り返し。平和でした。でもある日、雷に打たれたように気づいてしまったのです。
不毛だ……。
思えば、酷い不毛なルーティーンでした。毎日同じディレクトリに行くのにもっと何とかならないものか。スラッシュ何個打てばいいのか。一度気づいてしまったら、もうその考えを振り払うことはできません。今から数年前のことです。僕は探しました。cdコマンドを効率化するための方法を。そしてその方法はすぐに見つかりました。今までの時間はなんだったのでしょう。僕はいま、もうこのツールを使うことが当たり前になっています。
そのツールはenhancd。
神器の一つです。
目次
enhancdとは
enhancdとは、cdコマンドを拡張し、過去に訪れたディレクトリをストックし、参照することで、インタラクティブなディレクトリ移動を可能としたcdコマンドのラッパーです。動作を見た方が理解がスムーズかと思います。
感動の挙動。
enhancdはシェルスクリプトで書かれていて、Bash、もしくはZshで動くようです。自身では未確認ですが、fishでも動くとのこと。また、インタラクティブフィルターとして、複数のコマンドを選べるようです。詳細はこちらをどうぞ。
それではenhancdを使えるようにします。
インタラクティブフィルターのfzyをインストールする
僕はフィルターにfzyを使用しています。recommendって書いてあったので素直に。fzyはこちら。Macであれば下記でインストールができます。
% brew install fzy
% fzy --version
fzy 1.0 © 2014-2018 John Hawthorn
試しに複数行を読み込ませてみます。
curl https://liginc.co.jp/ | fzy
実に軽快でたくましい動き。
enhancdをインストールする
次に本命のenhancdをインストールします。と言ってもソースコードを置いて読み込むだけなので僕は以下のようにしました。
$ git clone git@github.com:b4b4r07/enhancd.git /usr/local/src/enhancd
またzshrcに下記の一文を加えます。
source /usr/local/src/enhancd/init.sh
このinit.shの中身を見ると分かるのですが、init.shを実行すると、cdのaliasとしてこのenhancdが実行されるようになります。つまり、これまでと同じようにcdを使うだけで、enhancdの強力な機能を使えるようになるのです。
enhancdのパワーを知る
任意のディレクトリに移動する
ホームディレクトリに移動する
上位階層に移動する
まとめ
enhancdが神器である所以は、もっとも使うコマンドの使用時間や思考時間を短縮したことにあると思っています。enhancdを使うことによって、cdは明らかに2倍速以上で使用できるようになりました。一日の中でcdにかける時間が半減以下になったということになります。
当たり前だと思っているものこそ、もしかしたら効率化のポイントかもしれないですよね。このように、今年は自分のルールを壊していきたい所存です。それでは。まさくにでした。
・
・
・
※おまけ:ちなみにLIGでは現在、バックエンドエンジニアを募集中です。ご興味をお持ちいただける方がいらっしゃいましたら、ぜひ下記のWantedlyページの概要をご覧の上、ご応募ください。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。