ターミナルでのディレクトリ移動は毎回タイプして頑張ってたんですがいよいよそれも面倒に思えて来ました。最終的に便利なものに出会ったのでそれを紹介します。
pushd、popd
まず、僕が知っていた方法である、シェルの組み込みのコマンドのpushd
popd
を考えてみました。
- pushd → 引数に渡したディレクトリをディレクトリスタック(履歴のようなもの)に入れる
- popd → ディレクトリスタックに最後に追加したディレクトに移動する
さっきまで作業していたディレクトリに戻るなどの一部のケースではこのコマンドでも十分やっていけるなーと思っていたものの使ってはいなかったので、これで行ってみよう!と思ったんですが、このpushd
popd
だと問題があることがわかりました。
普段ターミナルを使うときはtmuxを使って複数セッション?っていうんですかね、複数の窓を立ちあげて使っています。pushdやpopdは各ウィンドウごとに独立しているみたいで、別のウィンドウでpushd
したディレクトリにはpopd
できないようです。
ナンテコッタイ/(^o^)\
ググったらあったよ!
もっといいのがありました。
GitHubで公開している方がいたのでそのまま利用させてもらいました。
元記事
ターミナルでのディレクトリ移動を保存、取り出しする #screen - rcmdnk’s blog
インストールと設定
インストールにはHomebrewが使えます。
$ brew tap rcmdnk/rcmdnkpac
$ brew install sd_cl
.bashrc
に追記が必要です。
source /usr/local/etc/sd_cl
使い方
保存して置いたディレクトリを選ぶのにいくつか方法があります。個人的には$ cl -c
で一覧表示したディレクトリ一覧からvi風のj
、k
で選択して移動というのが超いけてます。
ディレクトリを保存する
$ sd # カレントディレクトリを保存
最後に保存したディレクトリに移動
$ cl
最後からN番目のディレクトリに移動
$ cl -n N
保存ディレクトリ一覧表示
$ cl -l
一覧から選択して移動
$ cl -c
クリア
$ cl -C